Remove Featured image meta box from WordPress Admin


In WordPress, the remove_meta_box is used to remove metabox from post, page, link or any custom page form in admin section. However, remove_meta_box function doesn’t work for featured image box (postimagediv). After digging the core function, found a solution here.

I just wanted to remove the ‘postimagediv’ meta box from the post edit form for the ‘contributor’ role. Here’s the code -

add_action( 'admin_menu' , 'remove_post_thumb_meta_box' );
function remove_post_thumb_meta_box(){
	global $pagenow, $_wp_theme_features;
	if ( in_array( $pagenow,array('post.php','post-new.php')) && !current_user_can('publish_posts')) {
		unset( $_wp_theme_features['post-thumbnails']);
	}
}

How it works

In 'edit-form-advanced.php' file in wordpress admin folder, they called the postimagediv meta box in this way –

if ( current_theme_supports( 'post-thumbnails', $post_type ) && post_type_supports( $post_type, 'thumbnail' )
	&& ( ! is_multisite() || ( ( $mu_media_buttons = get_site_option( 'mu_media_buttons', array() ) ) && ! empty( $mu_media_buttons['image'] ) ) ) )
		add_meta_box('postimagediv', __('Featured Image'), 'post_thumbnail_meta_box', $post_type, 'side', 'low');

The first logic ( if ( current_theme_supports( 'post-thumbnails', $post_type ))) say, if the current post type doesn’t support post-thumnails features, featured image meta box will not be placed. So i just removed the post-thumnails features, when the logged in user can’t publish posts and he is on post.php or post-new.php page.

That’s it.

Leave a Reply

Your email address will not be published.
* Required field.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>