The get_post_mime_types() WordPress PHP function retrieves the default post mime types.
Usage
$mime_types = get_post_mime_types();
Parameters
- None
More information
See WordPress Developer Resources: get_post_mime_types
Examples
Display supported mime types
This example retrieves the default post mime types and displays them in a list.
$mime_types = get_post_mime_types();
echo '<ul>';
foreach ($mime_types as $type => $label) {
echo '<li><strong>' . $type . '</strong>: ' . $label . '</li>';
}
echo '</ul>';
Filter posts by mime type
This example filters and displays posts with the ‘image’ mime type using WP_Query.
$mime_types = get_post_mime_types();
$image_type = $mime_types['image'];
$args = array(
'post_type' => 'attachment',
'post_mime_type' => $image_type,
);
$query = new WP_Query($args);
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
echo '<h3>' . get_the_title() . '</h3>';
}
}
Custom mime type support
This example adds support for a custom mime type ‘video/x-mkv’ using the upload_mimes filter.
function add_custom_mime_types($mimes) {
$mimes['mkv'] = 'video/x-mkv';
return $mimes;
}
add_filter('upload_mimes', 'add_custom_mime_types');
Count posts with specific mime type
This example counts the number of posts with the ‘audio’ mime type.
$mime_types = get_post_mime_types();
$audio_type = $mime_types['audio'];
$args = array(
'post_type' => 'attachment',
'post_mime_type' => $audio_type,
);
$query = new WP_Query($args);
echo 'There are ' . $query->found_posts . ' audio files.';
Display mime type for each post
This example displays the mime type for each post in the loop.
if (have_posts()) {
while (have_posts()) {
the_post();
echo '<h3>' . get_the_title() . '</h3>';
$mime_type = get_post_mime_type(get_the_ID());
echo 'Mime Type: ' . $mime_type;
}
}