The get_post_mime_type() WordPress PHP function retrieves the mime type of an attachment based on its ID.
Usage
get_post_mime_type( $post );
Custom example:
Input:
$post_id = 42; $mime_type = get_post_mime_type( $post_id ); echo $mime_type;
Output:
image/jpeg
Parameters
$post
(int|WP_Post) – Optional. Post ID or post object. Defaults to global$post
. Default:null
.
More information
See WordPress Developer Resources: get_post_mime_type()
Examples
Display mime type of a specific attachment
This example retrieves and displays the mime type of an attachment with ID 42.
$post_id = 42; $mime_type = get_post_mime_type( $post_id ); echo 'Mime Type: ' . $mime_type;
Check if attachment is an image
This example checks if the given attachment is an image.
function is_image( $post_id ) { $mime_type = get_post_mime_type( $post_id ); return strpos( $mime_type, 'image/' ) === 0; } $post_id = 42; if ( is_image( $post_id ) ) { echo 'The attachment is an image.'; } else { echo 'The attachment is not an image.'; }
Get all attachments of a specific mime type
This example retrieves all attachments with a specific mime type (e.g., image/jpeg
) and displays their titles.
function get_attachments_by_mime_type( $mime_type ) { $args = array( 'post_type' => 'attachment', 'post_mime_type' => $mime_type, 'posts_per_page' => -1, ); return get_posts( $args ); } $attachments = get_attachments_by_mime_type( 'image/jpeg' ); foreach ( $attachments as $attachment ) { echo 'Title: ' . $attachment->post_title . '<br>'; }
Display a custom icon based on mime type
This example displays a custom icon based on the mime type of a given attachment.
function get_icon_for_attachment( $post_id ) { $base = get_template_directory_uri() . '/images/icons/'; $type = get_post_mime_type( $post_id ); if ( strpos( $type, 'image/' ) === 0 ) { return $base . 'image.png'; } elseif ( strpos( $type, 'video/' ) === 0 ) { return $base . 'video.png'; } elseif ( strpos( $type, 'text/' ) === 0 ) { return $base . 'text.png'; } else { return $base . 'file.png'; } } $post_id = 42; $icon_url = get_icon_for_attachment( $post_id ); echo '<img src="' . $icon_url . '" />';