The display_media_states WordPress PHP filter allows you to modify the default media display states for items in the Media list table.
Usage
add_filter('display_media_states', 'your_custom_function', 10, 2);
function your_custom_function($media_states, $post) {
// your custom code here
return $media_states;
}
Parameters
$media_states(string[]): An array of media states. Default ‘Header Image’, ‘Background Image’, ‘Site Icon’, ‘Logo’.$post(WP_Post): The current attachment object.
More information
See WordPress Developer Resources: display_media_states
Examples
Add a custom media state for featured images
Add a new media state called “Featured Image” when an image is used as a featured image.
add_filter('display_media_states', 'add_featured_image_state', 10, 2);
function add_featured_image_state($media_states, $post) {
if (has_post_thumbnail() && get_post_thumbnail_id() == $post->ID) {
$media_states[] = 'Featured Image';
}
return $media_states;
}
Remove “Background Image” state
Remove the “Background Image” state from the Media list table.
add_filter('display_media_states', 'remove_background_image_state', 10, 2);
function remove_background_image_state($media_states, $post) {
$key = array_search('Background Image', $media_states);
if ($key !== false) {
unset($media_states[$key]);
}
return $media_states;
}
Replace “Site Icon” state with custom text
Replace the “Site Icon” state with a custom text “Favicon”.
add_filter('display_media_states', 'replace_site_icon_state', 10, 2);
function replace_site_icon_state($media_states, $post) {
$key = array_search('Site Icon', $media_states);
if ($key !== false) {
$media_states[$key] = 'Favicon';
}
return $media_states;
}
Add a custom media state for specific file types
Add a custom media state “Video Thumbnail” for JPEG images that are attached to video posts.
add_filter('display_media_states', 'add_video_thumbnail_state', 10, 2);
function add_video_thumbnail_state($media_states, $post) {
if ($post->post_mime_type == 'image/jpeg' && get_post_type($post->post_parent) == 'video') {
$media_states[] = 'Video Thumbnail';
}
return $media_states;
}
Add a custom media state for a specific user
Add a custom media state “User’s Favorite” for media uploaded by a specific user.
add_filter('display_media_states', 'add_users_favorite_state', 10, 2);
function add_users_favorite_state($media_states, $post) {
$favorite_user_id = 5; // Change this to the specific user ID
if ($post->post_author == $favorite_user_id) {
$media_states[] = "User's Favorite";
}
return $media_states;
}