The hidden_meta_boxes WordPress PHP Filter allows you to modify the list of hidden meta boxes for a specific screen.
Usage
add_filter('hidden_meta_boxes', 'your_custom_function', 10, 3);
function your_custom_function($hidden, $screen, $use_defaults) {
// your custom code here
return $hidden;
}
Parameters
$hidden(string[]): An array of IDs of hidden meta boxes.$screen(WP_Screen): WP_Screen object of the current screen.$use_defaults(bool): Whether to show the default meta boxes. Default is true.
More information
See WordPress Developer Resources: hidden_meta_boxes
Examples
Hide a specific meta box
Hide the ‘postexcerpt’ meta box on the post edit screen.
add_filter('hidden_meta_boxes', 'hide_post_excerpt', 10, 3);
function hide_post_excerpt($hidden, $screen, $use_defaults) {
if ($screen->id == 'post') {
$hidden[] = 'postexcerpt';
}
return $hidden;
}
Show all meta boxes
Force all meta boxes to be visible on the page edit screen.
add_filter('hidden_meta_boxes', 'show_all_meta_boxes', 10, 3);
function show_all_meta_boxes($hidden, $screen, $use_defaults) {
if ($screen->id == 'page') {
$hidden = array();
}
return $hidden;
}
Hide specific meta boxes for custom post type
Hide ‘trackbacksdiv’ and ‘commentstatusdiv’ meta boxes for the custom post type ‘event’.
add_filter('hidden_meta_boxes', 'hide_event_meta_boxes', 10, 3);
function hide_event_meta_boxes($hidden, $screen, $use_defaults) {
if ($screen->id == 'event') {
$hidden[] = 'trackbacksdiv';
$hidden[] = 'commentstatusdiv';
}
return $hidden;
}
Hide all default meta boxes
Hide all default meta boxes on the post edit screen.
add_filter('hidden_meta_boxes', 'hide_all_default_meta_boxes', 10, 3);
function hide_all_default_meta_boxes($hidden, $screen, $use_defaults) {
if ($screen->id == 'post' && $use_defaults) {
$hidden = array_merge($hidden, array_keys(get_registered_meta_boxes('post')));
}
return $hidden;
}
Show a specific meta box
Force the ‘postimagediv’ meta box to be visible on the post edit screen.
add_filter('hidden_meta_boxes', 'show_post_image', 10, 3);
function show_post_image($hidden, $screen, $use_defaults) {
if ($screen->id == 'post') {
$index = array_search('postimagediv', $hidden);
if (false !== $index) {
unset($hidden[$index]);
}
}
return $hidden;
}