do_meta_boxes
Meta-Box template function.
Description
Returns (int)
number of meta_boxes
Parameters (3)
- 0. $screen (string|WP_Screen)
- Screen identifier
- 1. $context (string)
- The context.
- 2. $object (mixed)
- Gets passed to the box callback function as first parameter
Usage
if ( !function_exists( 'do_meta_boxes' ) ) { require_once ABSPATH . '/wp-admin/includes/template.php'; } // Screen identifier $screen = null; // The context. $context = ''; // gets passed to the box callback function as first parameter $object = null; // NOTICE! Understand what this does before running. $result = do_meta_boxes($screen, $context, $object);
Defined (1)
The function is defined in the following location(s).
- /wp-admin/includes/template.php
- function do_meta_boxes( $screen, $context, $object ) {
- global $wp_meta_boxes;
- static $already_sorted = false;
- if ( empty( $screen ) )
- $screen = get_current_screen();
- elseif ( is_string( $screen ) )
- $screen = convert_to_screen( $screen );
- $page = $screen->id;
- $hidden = get_hidden_meta_boxes( $screen );
- printf('<div id="%s-sortables" class="meta-box-sortables">', htmlspecialchars($context));
- // Grab the ones the user has manually sorted. Pull them out of their previous context/priority and into the one the user chose
- if ( ! $already_sorted && $sorted = get_user_option( "meta-box-order_$page" ) ) {
- foreach ( $sorted as $box_context => $ids ) {
- foreach ( explode( ', ', $ids ) as $id ) {
- if ( $id && 'dashboard_browser_nag' !== $id ) {
- add_meta_box( $id, null, null, $screen, $box_context, 'sorted' );
- }
- }
- }
- }
- $already_sorted = true;
- $i = 0;
- if ( isset( $wp_meta_boxes[ $page ][ $context ] ) ) {
- foreach ( array( 'high', 'sorted', 'core', 'default', 'low' ) as $priority ) {
- if ( isset( $wp_meta_boxes[ $page ][ $context ][ $priority ]) ) {
- foreach ( (array) $wp_meta_boxes[ $page ][ $context ][ $priority ] as $box ) {
- if ( false == $box || ! $box['title'] )
- continue;
- $i++;
- $hidden_class = in_array($box['id'], $hidden) ? ' hide-if-js' : '';
- echo '<div id="' . $box['id'] . '" class="postbox ' . postbox_classes($box['id'], $page) . $hidden_class . '" ' . '>' . "\n";
- if ( 'dashboard_browser_nag' != $box['id'] ) {
- $widget_title = $box[ 'title' ];
- if ( is_array( $box[ 'args' ] ) && isset( $box[ 'args' ][ '__widget_basename' ] ) ) {
- $widget_title = $box[ 'args' ][ '__widget_basename' ];
- // Do not pass this parameter to the user callback function.
- unset( $box[ 'args' ][ '__widget_basename' ] );
- }
- echo '<button type="button" class="handlediv button-link" aria-expanded="true">';
- echo '<span class="screen-reader-text">' . sprintf( __( 'Toggle panel: %s' ), $widget_title ) . '</span>';
- echo '<span class="toggle-indicator" aria-hidden="true"></span>';
- echo '</button>';
- }
- echo "<h2 class='hndle'><span>{$box['title']}</span></h2>\n";
- echo '<div class="inside">' . "\n";
- call_user_func($box['callback'], $object, $box);
- echo "</div>\n";
- echo "</div>\n";
- }
- }
- }
- }
- echo "</div>";
- return $i;
- }