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.


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


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



#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:


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


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;