get_post_mime_type( int|WP_Post $post = null ): string|false

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

Description

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

Parameters

$postint|WP_Postoptional
Post ID or post object. Defaults to global $post.

Default:null

Return

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

Source

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

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

	return false;
}

Changelog

VersionDescription
2.0.0Introduced.

User Contributed Notes

  1. Skip to note 2 content

    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.