get_post_mime_type( int|WP_Post $post = null )

Retrieve the mime type of an attachment based on the ID.


Description Description

This function can be used with any post type, but it makes more sense with attachments.


Top ↑

Parameters Parameters

$post

(int|WP_Post) (Optional) Post ID or post object. Defaults to global $post.

Default value: null


Top ↑

Return Return

(string|false) The mime type on success, false on failure.


Top ↑

Source Source

File: wp-includes/post.php

function get_post_mime_type( $post = null ) {
	$post = get_post( $post );

	if ( is_object( $post ) ) {
		return $post->post_mime_type;
	}

	return false;
}


Top ↑

Changelog Changelog

Changelog
Version Description
2.0.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note 1 content
    Contributed by Codex

    Return an icon image path according to the MIME type of the given post

    function get_icon_for_attachment($post_id) {
      $base = get_template_directory_uri() . "/images/icons/";
      $type = get_post_mime_type($post_id);
      switch ($type) {
        case 'image/jpeg':
        case 'image/png':
        case 'image/gif':
          return $base . "image.png"; break;
        case 'video/mpeg':
        case 'video/mp4': 
        case 'video/quicktime':
          return $base . "video.png"; break;
        case 'text/csv':
        case 'text/plain': 
        case 'text/xml':
          return $base . "text.png"; break;
        default:
          return $base . "file.png";
      }
    }
    // call it like this:
    echo '<img src="'.get_icon_for_attachment($my_attachment->ID).'" />';
    

    WordPress already has a function to get the mime type icon called wp_mime_type_icon
    https://developer.wordpress.org/reference/functions/wp_mime_type_icon/

You must log in before being able to contribute a note or feedback.