Intereting Posts
Переопределить шаблон плагина Открыть детали вложений Как я могу использовать разные группы редакторов только для редактирования некоторых родительских + подстраниц? Как заставить пользовательский тип сообщения использовать конкретный шаблон? Крючок для плагина для отображения содержимого для определенных URL-адресов Извлечь вложения изображений есть ли какие-либо недостатки для увеличения количества последних элементов в фиде Отображать формат сообщения в виде строки Как получить все сообщения помеченные в категории rentarchy? Должен ли я загружать всю директорию WP для каждого отдельного экземпляра / веб-сайта, который использует WP? Как удалить пользователя при выходе из системы и истечении срока действия сеанса? Каков самый ранний способ изменить содержание сообщения? Настройка темы – можно отключить Live Preview? Расширьте список MIME-типов, поддерживаемых встроенным загрузчиком в 3.3 Как избежать загрузки wp-load.php из внешних php-скриптов?

Register_Sidebar перезаписывает себя и не существует в глобальных $ wp_registered_sidebars;

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

CLASS EXCERPT:

public function __construct() { add_action('widgets_init', array($this, 'checkForActiveSidebarAndMenu')); } public function checkForActiveSidebarAndMenu() { //global $wp_registered_sidebars; //print_r($wp_registered_sidebars); $terms = get_terms(array('taxonomy'=>'minisite','hide_empty'=>false)); print_r($terms); foreach($terms as $term) { $this->registerSidebars($term->term_id); //$this->registerMenu($term->term_id); update_term_meta($term->term_id, 'sidebar_active', '1'); //update_term_meta($term->term_id, 'menu_active', '1'); } } public function registerSidebars($mini_site_id) { // Register main content sidebar, [MINISITENAME]_[TERMID]_HOMEPAGE // Register right aligned sidebar, [MINISITENAME]_[TERMID]_RIGHT_SIDEBAR $mini_site_name = get_term($mini_site_id, 'minisite'); $mini_site_name = $mini_site_name->slug; $sidebar_name = $mini_site_name . '_' . $mini_site_id; $args = array( 'id'=>$sidebar_name . '_HOMEPAGE', 'name'=>$sidebar_name . ' HOMEPAGE' ); register_sidebar($args); //var_dump($sidebar); $args = array( 'id'=>$sidebar_name . '_RIGHT_SIDEBAR', 'name'=>$sidebar_name . ' RIGHT SIDEBAR' ); register_sidebar($args); } 

Эта функция регистрирует боковую панель. Массив запросов в «get_terms» изменится.

Это моя вторая функция, которую я написал, поскольку изначально у меня создалось впечатление, что боковые панели нужно регистрировать только один раз, а не каждый «widgets_init»,

Вышеприведенный код создает боковую панель каждый раз при запуске widgets_init, что означает, что я могу заполнить свою боковую панель виджетами, обновить, а новая боковая панель будет там, а старая.

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

Дополнительно:

  • Класс хорош, и методы выполняются так, как должны.

  • Таксономия «minisite» – это моя таксономия, и она работает нормально, она загружается как приоритет 0 на «init», чтобы позволить widgets_init правильно работать с этой таксономией.

Решение было простым и заставило меня чувствовать себя совершенно глупо. 90% вопросов, которые я мог найти удаленно, аналогично моей проблеме, – это все проблемы, связанные с корпусом. В течение всего этого процесса я забыл «_HOMEPAGE» и «_RIGHT_SIDEBAR» в своих идентификаторах.

Они должны быть строчными.

id – идентификатор боковой панели – должен быть все в нижнем регистре, без пробелов (по умолчанию это числовое число с автоматическим увеличением). Если вы не установите значение аргумента id, вы получите сообщения E_USER_NOTICE в режиме отладки, начиная с версии 4.2.

https://codex.wordpress.org/Function_Reference/register_sidebar#Parameters