get_post_mime_type()WP 2.0.0

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

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

No Hooks.

Return

String|false. The mime type on success, false on failure.

Usage

get_post_mime_type( $post );
$post(int|WP_Post)
Post ID or post object.
Default: global $post

Examples

0

#1 Get a mime type of post

You need to get mime type posts with ID equal to 121 (this is a loaded in the media section of the WordPress html file):

$rrr = get_post_mime_type( 121 );
echo $rrr;
// output: text/html

If we need to know the mime type inside a loop that uses the global variable $post, you can use this function instead:

$post->post_mime_type;
0

#2 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().

Changelog

Since 2.0.0 Introduced.

get_post_mime_type() code WP 6.5.2

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

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

	return false;
}