Yesterday I had a friend write me on Twitter asking about remove_mata_box. He was having issues getting the function to fire properly (or at at for that matter).
I was out last night and just got a chance to open up my computer and test out some code. While the WordPress codex is intact and had example code. It simply wasn’t working.
Codex Example
function remove_featured_image_field() {
remove_meta_box( 'postimagediv' , 'page' , 'normal' );
}
add_action( 'admin_menu' , 'remove_featured_image_field' );
?>
I added the above function, but like mentioned before had no luck. So I wrote up a quick plugin to handle the task and came up with this (which still didn’t work):
$remove = new Frosty_Remove_Meta_Box();
class Frosty_Remove_Meta_Box {
function Frosty_Remove_Meta_Box() {
$this->__construct();
}
/* To infinity and beyond */
function __construct() {
add_action( 'admin_init, array( __CLASS__, 'remove_meta_box' ) );
add_action( 'admin_menu, array( __CLASS__, 'remove_meta_box' ) );
}
function remove_meta_box() {
remove_meta_box( 'postimagediv', 'post', 'side' );
}
}
After trying both admin_init & admin_menu I scowered Google and came across a fix my buddy Michael suggested on a WordPress forum. Use admin_head. And so I did, and it worked!
The final code
$remove = new Frosty_Remove_Meta_Box();
class Frosty_Remove_Meta_Box {
function Frosty_Remove_Meta_Box() {
$this->__construct();
}
/* To infinity and beyond */
function __construct() {
add_action( 'admin_head', array( __CLASS__, 'remove_meta_box' ) );
}
function remove_meta_box() {
// Remove the meta box for all post types. (post,page,custom_post)
$post_types = get_post_types( array( 'public' => true ), 'objects' );
foreach ( $post_types as $type ) {
remove_meta_box( 'postimagediv', $type->name, 'side' );
}
}
}
Thoughts? Care to add on to this?












