do_accordion_sections()
Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.
Сигнатура
do_accordion_sections( string|object $screen, string $context, mixed $data_object ): int
Описание
В значительной степени состоит из абстрагированного кода из do_meta_boxes() ; служит для построения метабоксов в виде элементов списка для отображения в виде сворачиваемого аккордеона.
Оригинал (английский)
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.
Параметры
$screen
string|object
обязательный
$context
string
обязательный
$data_object
mixed
обязательный
Возвращаемое значение
int
Исходный код
wp-admin/includes/template.php:1539
function do_accordion_sections( $screen, $context, $data_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 = '';
$aria_expanded = 'false';
if ( ! $first_open && empty( $hidden_class ) ) {
$first_open = true;
$open_class = 'open';
$aria_expanded = 'true';
}
?>
<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">
<button type="button" class="accordion-trigger" aria-expanded="<?php echo $aria_expanded; ?>" aria-controls="<?php echo esc_attr( $box['id'] ); ?>-content">
<span class="accordion-title">
<?php echo esc_html( $box['title'] ); ?>
<span class="dashicons dashicons-arrow-down" aria-hidden="true"></span>
</span>
</button>
</h3>
<div class="accordion-section-content <?php postbox_classes( $box['id'], $page ); ?>" id="<?php echo esc_attr( $box['id'] ); ?>-content">
<div class="inside">
<?php call_user_func( $box['callback'], $data_object, $box ); ?>
</div><!-- .inside -->
</div><!-- .accordion-section-content -->
</li><!-- .accordion-section -->
<?php
}
}
}
}
?>
</ul><!-- .outer-border -->
</div><!-- .accordion-container -->
<?php
return $i;
}
История изменений
| Версия | Описание |
|---|---|
| 3.6.0 | Introduced. |

