Intereting Posts
перенаправлен на «добро пожаловать на 3.8.5» после автоматического обновления до 4.1.1, теперь другие ссылки администратора дают 500 ошибок wordpress ajax не работает для выбора Хранение базы данных WP синхронизировано между несколькими разработчиками, использующими git Ближайшая почта к дате Флажок для описания в Виджет Не показывать таксономию, если пустая отображать пользовательский тип сообщения в виджетах aera Получить параметры запроса из внешнего URL и сделать перенаправление Утеряны права администратора и не могут найти исправление Загружать прикрепленные изображения на одном сайте страницы с помощью fancybox Переход через цикл foreach – добавление +1 к концу, так что в следующий раз, когда он начнет цикл, он начнется с пункта 2 Как расширить разделы и настройки родительских тем в Дереве опций Как отправить данные между wp_iframe и backbone.js в загрузке мультимедиа Что я могу сделать для достижения этого эффекта: WIP -> Портфолио Добавить скрипты на персонализированный пост добавить / редактировать страницы Не работает

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

Я знаю, что на этот вопрос ответили много раз, включая сюда, откуда я пришел, поэтому это, вероятно, будет очень просто.

Я зарегистрировал свои боковые панели как обычно

function wmw_sidebars() { // Register default widgetized areas $sidebars = array( 'primary' => array( 'name' => __( 'Primary Widget Area', WMW_ADMIN_TEXTDOMAIN ), 'desc' => __( 'The primary widget area', WMW_ADMIN_TEXTDOMAIN ) ), 'home' => array( 'name' => __( 'Homepage Widget Area', WMW_ADMIN_TEXTDOMAIN ), 'desc' => __( 'The homepage widget area', WMW_ADMIN_TEXTDOMAIN ) ), ); foreach ( $sidebars as $type => $sidebar ){ register_sidebar(array( 'name' => $sidebar['name'], 'id'=> $type, 'description' => $sidebar['desc'], 'before_widget' => '<div id="%1$s" class="widget %2$s">', 'after_widget' => '</div>', 'before_title' => '<h4 class="widgettitle"><span>', 'after_title' => '</span></h4>', )); } } 

Я использую тот же CMB Metabox Class, что и fshequin, и обнаруживаю, что метамоксины появляются на моих сообщениях и страницах.

  $meta_boxes[] = array( 'id' => 'WMW_page_layout_meta', 'title' => __( 'Page Layout Options', WMW_ADMIN_TEXTDOMAIN ), 'pages' => get_post_types(), 'context' => 'side', 'priority' => 'default', 'show_names' => false, // Show field names on the left 'fields' => array( array( 'name' => __( 'Page Layout', WMW_ADMIN_TEXTDOMAIN ), 'desc' => __( 'You can choose between a left, right, or no sidebar layout for your page.', WMW_ADMIN_TEXTDOMAIN ), 'id' => '_layout', 'type' => 'select', 'options' => array( array('name' => 'Full Width (No Sidebar)', 'value' => 'full_width', ), array('name' => 'Sidebar on Left, Content on Right', 'value' => 'left_sidebar', ), array('name' => 'Sidebar on Right, Content on Left', 'value' => 'right_sidebar',) ) ), array( 'name' => __( 'Page Sidebar', WMW_ADMIN_TEXTDOMAIN ), 'desc' => __( 'Choose the Sidebar to show on this page.', WMW_ADMIN_TEXTDOMAIN ), 'id' => '_page_sidebar', 'type' => 'select', 'options' => $sidebar_options ) ) ); 

Но по какой-то причине я не могу получить варианты выбора.

I Помещенный массив в тот же файл функций, что и регистрация боковых панелей, но не в функции.

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

Что бы я ни старался, этого не происходит, я изменил имена переменных, чтобы избежать конфликта с массивом регистров боковой панели, но без кубиков.

Любая помощь приветствуется!

———————— EDITED ————————- ————–

Хорошо, я сломал его и пошел проверять каждую его часть.

 $sidebar_ops = array(); $sidebar_ops[] = array( 'name' => __( 'Page Sidebar 1', WMW_ADMIN_TEXTDOMAIN ), 'value' => 'sidebar_1', ); $sidebar_ops[] = array( 'name' => __( 'Page Sidebar 2', WMW_ADMIN_TEXTDOMAIN ), 'value' => 'sidebar_2', ); //$GLOBALS['wp_registered_sidebars'] $sidebar_options = array(); foreach ( $sidebar_ops as $sidebar_op ){ $sidebar_options[] = array( 'name' => $sidebar_op['name'], 'value' => $sidebar_op['id'] ); } 

Я скомпилировал фиктивный массив, а затем использовал foreach для проверки этого.

Проблема заключается в $GLOBALS['wp_registered_sidebars'] и использовании этого массива. Какой правильный способ назвать это?

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

Вы также можете использовать такую ​​функцию:

  <?php /* Other stuff */ function sidebarOptions(){ $sidebars = $GLOBALS['wp_registered_sidebars']; $sidebar_options = array(); foreach ( $sidebars as $sidebar ){ $sidebar_options[] = array( 'name' => $sidebar['name'], 'value' => $sidebar['id'] ); } return $sidebar_options; } /* Other stuff */ /* * Trying to print the result to check if it is what expect us * echo '<pre>'; * print_r( sidebarOptions() ); * echo '</pre>'; */ $meta_boxes[] = array( 'id' => 'WMW_page_layout_meta', 'title' => __( 'Page Layout Options', WMW_ADMIN_TEXTDOMAIN ), 'pages' => get_post_types(), 'context' => 'side', 'priority' => 'default', 'show_names' => false, // Show field names on the left 'fields' => array( array( 'name' => __( 'Page Layout', WMW_ADMIN_TEXTDOMAIN ), 'desc' => __( 'You can choose between a left, right, or no sidebar layout for your page.', WMW_ADMIN_TEXTDOMAIN ), 'id' => '_layout', 'type' => 'select', 'options' => array( array('name' => 'Full Width (No Sidebar)', 'value' => 'full_width', ), array('name' => 'Sidebar on Left, Content on Right', 'value' => 'left_sidebar', ), array('name' => 'Sidebar on Right, Content on Left', 'value' => 'right_sidebar',) ) ), array( 'name' => __( 'Page Sidebar', WMW_ADMIN_TEXTDOMAIN ), 'desc' => __( 'Choose the Sidebar to show on this page.', WMW_ADMIN_TEXTDOMAIN ), 'id' => '_page_sidebar', 'type' => 'select', 'options' => sidebarOptions() ) ) );