Intereting Posts
добавить пароль для публикации метаблока wordpress Как заменить собственный comment_count комментариями. Отправлять электронную почту администратору, когда пользовательский тип сообщения создается не удалось перевести архив post_type Как отобразить post_content из базы данных на другой странице <p> на странице шаблона? Добавить первый URL-адрес в настраиваемое поле publish_post Проблемы с созданием плагина tinyMCE, который создает настраиваемую ссылку Передача информации из functions.php в плагин Создание ежемесячного архива страниц (без сообщений) Получение пользовательского размера изображения в функциях Импорт изображений с самостоятельного размещения на WordPress.com WooCommerce – хотите показать несколько валют для одного продукта Как я могу сделать динамику своей должности? Настройка URL-адреса входа в WordPress WordPress Двадцать двенадцать детских тем. Удаление виджетированных областей по умолчанию

Как перечислить все боковые панели в метабоксе

Я пытаюсь добавить метабокс на каждую страницу, представляющую собой раскрывающийся список всех зарегистрированных боковых панелей, который затем сохраняется в настраиваемом поле.

Я использую этот класс метабокса

Я дошел до этого:

// get registered Sidebars $sidebars = $GLOBALS['wp_registered_sidebars']; foreach ( $sidebars as $sidebar ) { $sidebar_options[$sidebar['name']] = $sidebar['name']; } 

Затем я называю переменную $ sidebars в моей декларации метабокса следующим образом:

 $meta_boxes[] = array( 'id' => 'page_metabox', 'title' => 'Page Custom Fields', 'pages' => array( 'page', ), // Post type 'context' => 'normal', 'priority' => 'high', 'show_names' => true, // Show field names on the left 'fields' => array( array( 'name' => 'Page Sidebar', 'desc' => 'Choose the Sidebar to show on this page.', 'id' => /*$prefix .*/ 'erh_page_sidebar', 'type' => 'select', 'options' => $sidebar_options, ) ) ); 

Это результат $ sidebar_options:

 $sidebar_options = array ( 'Header Sidebar' => 'Header Sidebar', 'Main Sidebar' => 'Main Sidebar', 'News Sidebar' => 'News Sidebar', 'Home Panel 1' => 'Home Panel 1', 'Home Panel 2' => 'Home Panel 2', 'Home Panel 3' => 'Home Panel 3', 'Footer 1 Sidebar' => 'Footer 1 Sidebar', 'Footer 2 Sidebar' => 'Footer 2 Sidebar', 'Footer 3 Sidebar' => 'Footer 3 Sidebar', 'Footer 4 Sidebar' => 'Footer 4 Sidebar', 'Footer 5 Sidebar' => 'Footer 5 Sidebar', 'Footer 6 Sidebar' => 'Footer 6 Sidebar', 'Right Sidebar 1' => 'Right Sidebar 1', 'Staff login Sidebar' => 'Staff login Sidebar', 'Staff Sidebar' => 'Staff Sidebar', 'Careers Sidebar' => 'Careers Sidebar', 'Care Providers Sidebar' => 'Care Providers Sidebar', ) 

моя проблема заключается в том, что этот класс metox хочет, чтобы раскрывающиеся опции были в этой форме, и я не знаю, как это сделать:

 array( 'name' => 'Sidebar 1', 'value' => 'Right Sidebar 1', ), array( 'name' => 'Sidebar 2', 'value' => 'Right Sidebar 2', ), array( 'name' => 'Sidebar 3', 'value' => 'Right Sidebar 3', ), 

Любая помощь высоко ценится 🙂

Solutions Collecting From Web of "Как перечислить все боковые панели в метабоксе"

Попробуй это:

 <?php $sidebar_options = array(); $sidebars = $GLOBALS['wp_registered_sidebars']; foreach ( $sidebars as $sidebar ){ $sidebar_options[] = array( 'name' => $sidebar['name'], 'value' => $sidebar['id'] ); } ?> 

Это печатает (с моими зарегистрированными боковыми панелями):

 Array ( [0] => Array ( [name] => Language Menu [value] => sidebar-1 ) [1] => Array ( [name] => Primary Sidebar [value] => primary-sidebar ) [2] => Array ( [name] => Secondary Sidebar [value] => secondary-sidebar ) [3] => Array ( [name] => Footer left box [value] => footer_box_left ) [4] => Array ( [name] => Footer middle box [value] => footer_box_middle ) [5] => Array ( [name] => Footer right box [value] => footer_box_right ) ) 

В выбранном теге это становится:

 <html> <select> <?php foreach( $sidebar_options as $option ){ ?> <option value="<?php echo $option['value']; ?>"><?php echo $option['name']; ?></option> <?php } ?> </select> </html> 

Надеюсь, поможет!