The do_meta_boxes WordPress PHP action fires once for each of the default meta box contexts: normal, advanced, and side.
Usage
add_action('do_meta_boxes', 'your_custom_function', 10, 3); function your_custom_function($post_type, $context, $post) { // your custom code here }
Parameters
$post_type
: (string) Post type of the post on Edit Post screen, ‘link’ on Edit Link screen, ‘dashboard’ on Dashboard screen.$context
: (string) Meta box context. Possible values include ‘normal’, ‘advanced’, ‘side’.$post
: (WP_Post|object|string) Post object on Edit Post screen, link object on Edit Link screen, an empty string on Dashboard screen.
More information
See WordPress Developer Resources: do_meta_boxes
Examples
Display a message after meta boxes
add_action('do_meta_boxes', 'display_message_after_meta_boxes', 10, 3); function display_message_after_meta_boxes($post_type, $context, $post) { if ($context == 'side') { echo "**This is a side meta box.**"; } }
Add custom CSS for specific post type
add_action('do_meta_boxes', 'add_custom_css_for_post_type', 10, 3); function add_custom_css_for_post_type($post_type, $context, $post) { if ($post_type == 'your_post_type') { echo "<style>.your-custom-class { color: red; }</style>"; } }
Display context-specific message
add_action('do_meta_boxes', 'display_context_specific_message', 10, 3); function display_context_specific_message($post_type, $context, $post) { if ($context == 'advanced') { echo "**Welcome to the advanced context.**"; } }
Remove specific meta box from dashboard
add_action('do_meta_boxes', 'remove_specific_meta_box_from_dashboard', 10, 3); function remove_specific_meta_box_from_dashboard($post_type, $context, $post) { if ($post_type == 'dashboard') { remove_meta_box('your_meta_box_id', 'dashboard', $context); } }
Add custom content after ‘normal’ context meta boxes
add_action('do_meta_boxes', 'add_custom_content_after_normal_context', 10, 3); function add_custom_content_after_normal_context($post_type, $context, $post) { if ($context == 'normal') { echo "**This is a custom message after normal context meta boxes.**"; } }