Summery Summery
Meta Box Accordion Template Function.
Syntax Syntax
Description Description
Largely made up of abstracted code from do_meta_boxes(), this function serves to build meta boxes as list items for display as a collapsible accordion.
Parameters Parameters
- $screen
-
(Required) The screen identifier.
- $context
-
(Required) The screen context for which to display accordion sections.
- $object
-
(Required) Gets passed to the section callback function as the first parameter.
Return Return
(int) Number of meta boxes as accordion sections.
Source Source
File: wp-admin/includes/template.php
function do_accordion_sections( $screen, $context, $object ) { global $wp_meta_boxes; wp_enqueue_script( 'accordion' ); 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 ); ?> <div id="side-sortables" class="accordion-container"> <ul class="outer-border"> <?php $i = 0; $first_open = false; if ( isset( $wp_meta_boxes[ $page ][ $context ] ) ) { foreach ( array( 'high', 'core', 'default', 'low' ) as $priority ) { if ( isset( $wp_meta_boxes[ $page ][ $context ][ $priority ] ) ) { foreach ( $wp_meta_boxes[ $page ][ $context ][ $priority ] as $box ) { if ( false === $box || ! $box['title'] ) { continue; } $i++; $hidden_class = in_array( $box['id'], $hidden, true ) ? 'hide-if-js' : ''; $open_class = ''; if ( ! $first_open && empty( $hidden_class ) ) { $first_open = true; $open_class = 'open'; } ?> <li class="control-section accordion-section <?php echo $hidden_class; ?> <?php echo $open_class; ?> <?php echo esc_attr( $box['id'] ); ?>" id="<?php echo esc_attr( $box['id'] ); ?>"> <h3 class="accordion-section-title hndle" tabindex="0"> <?php echo esc_html( $box['title'] ); ?> <span class="screen-reader-text"><?php _e( 'Press return or enter to open this section' ); ?></span> </h3> <div class="accordion-section-content <?php postbox_classes( $box['id'], $page ); ?>"> <div class="inside"> <?php call_user_func( $box['callback'], $object, $box ); ?> </div><!-- .inside --> </div><!-- .accordion-section-content --> </li><!-- .accordion-section --> <?php } } } } ?> </ul><!-- .outer-border --> </div><!-- .accordion-container --> <?php return $i; }
Advertisement
Changelog Changelog
Version | Description |
---|---|
3.6.0 | Introduced. |