Intereting Posts
Показать фрагменты подписчиков Twitter не работают Добавить кнопку таблицы в редакторе без плагина Как я могу создать ссылку «Подробнее», используя the_excerpt () на статической странице? Как перенаправить страницу на субдомен? Изменить эскиз сообщения с помощью формы редактирования переднего конца Как вызвать статическую функцию в add_action () внутри другой статической функции? Страница архива не найдена в пользовательском типе сообщения Объединение «глубины» с «include» в wp_list_pages () Не удается получить доступ к администратору WP, потому что плагин возвращает 204 Обновление заголовка сообщения с помощью wp_update_post Как использовать пользовательские действия, созданные внутри одного плагина в другом WP Plugins – использование включает отображение содержимого страницы admin-ajax.php GET заголовки пользовательских сообщений Исключить некоторых авторов из запроса Статус запроса AJAX 200, но фактический «ответ»

Список всех имен боковой панели?

Я перечисляю все такие боковые панели:

global $wp_registered_sidebars; echo '<pre>'; print_r($wp_registered_sidebars); echo '</pre>' 

Поэтому я получаю что-то вроде:

 Array ( [sidebar-1] => Array ( [name] => Sidebar #1 [id] => sidebar-1 [description] => Sidebar number 1 [before_widget] => [after_widget] => [before_title] => [after_title] => ) (...) ) 

Но я бы хотел отобразить их в виде списка, например:

 <select> <option value ="SIDEBAR-ID">SIDEBAR-NAME/option> <option value ="SIDEBAR-ID">SIDEBAR-NAME/option> (...) </select> 

WordPress Codex вообще не помогает.

Спасибо!

Solutions Collecting From Web of "Список всех имен боковой панели?"

Цикл через глобальный:

 <select> <?php foreach ( $GLOBALS['wp_registered_sidebars'] as $sidebar ) { ?> <option value="<?php echo ucwords( $sidebar['id'] ); ?>"> <?php echo ucwords( $sidebar['name'] ); ?> </option> <?php } ?> </select> 

Заметка:
Функция ucwords() только для отображения ее точно так же, как вы просили. Не уверен, что вы действительно этого хотите.


Как получить доступ к глобальным массивам и объектам:

Во всяком случае: ваш Q в основном касается доступа к массивам. Я написал об этом (для дальнейшего объяснения). Пожалуйста, взгляните сюда.

Напишите функцию для создания списка для вас?

 function sidebar_selectbox( $name = '', $current_value = false ) { global $wp_registered_sidebars; if ( empty( $wp_registered_sidebars ) ) return; $name = empty( $name ) ? false : ' name="' . esc_attr( $name ) . '"'; $current = $current_value ? esc_attr( $current_value ) : false; $selected = ''; ?> <select<?php echo $name; ?>> <?php foreach ( $wp_registered_sidebars as $sidebar ) : ?> <?php if ( $current ) $selected = selected( $current === $sidebar['id'], true, false ); ?> <option value="<?php echo $sidebar['id']; ?>"<?php echo $selected; ?>><?php echo $sidebar['name']; ?></option> <?php endforeach; ?> </select> <?php } 

Затем просто вызовите его везде, где вам нужно создать список выбора с боковыми панелями, необязательно пропуская имя, например.

 sidebar_selectbox(); 

или

 sidebar_selectbox( 'theme_sidebars' ); 

Дополнительно и, необязательно, передать текущее выбранное значение …

 sidebar_selectbox( 'theme_sidebars', $var_holding_current ); 

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