Remove the Featured Image Meta Box
-
16-10-2019 - |
Question
How can I remove the Featured Image meta box? I've tried using the remove_meta_box
function and specifying the boxes ID but it doesn't seem to work like it does for the other native meta boxes.
Here is the specific code I tried:
add_action( 'admin_menu', 'remove_thumbnail_box' );
function remove_thumbnail_box() {
remove_meta_box( 'postimagediv', 'post', 'side' );
}
Solution
I haven't had time to test this but this looks like it should work for you.
add_action('do_meta_boxes', 'remove_thumbnail_box');
function remove_thumbnail_box() {
remove_meta_box( 'postimagediv','post','side' );
}
Check this for more info.
Edit: The main change here is that you need to attach the function to do_meta_boxes instead of admin_menu
OTHER TIPS
The post thumbnail is added to a post type as something this post type supports. If you want to remove post thumbnail functionality from a post type, you can call remove_post_type_support()
. Regular posts are also defined as custom post types, so it should work for them too.
add_action( 'init', 'wpse4936_init', 100 /* Something high, to make sure all post types are registered */ );
function wpse4936_init()
{
remove_post_type_support( 'post', 'post-thumbnail' );
// Or remove it for all registerd types
foreach ( get_post_types() as $post_type ) {
remove_post_type_support( $post_type, 'post-thumbnail' );
}
}
add_action('do_meta_boxes', 'remove_thumbnail_box');
function remove_thumbnail_box($post_type) {
remove_meta_box( 'postimagediv', 'post.php', 'side' );
}
Wordpress seems to only disable the featured images when calling action do_meta_boxes also use "post.php" as the post type instead of "post", I don't know why this is as it contradicts the documentation. Warning the do_meta_boxes seems to fire before function wp_get_current_user() becomes available so you won't be able to disable based on user type, it's all or nothing. Maybe someone else knows of a work around.