Intereting Posts
Стандартная категория сообщений типа условного обозначения Как назначить конкретный пост определенной странице в WordPress? WordPress постоянно изменяет путаницу WP ecommerce – Как изменить образ продукта для каждого варианта продукта? WordPress functions.php – Выполнить плагин для конкретного пользователя онлайн Как изменить структуру permalink и сохранить постоянные ссылки для старых сообщений Почему `add_meta_box` не работает? How-To и устранение неполадок канонических ссылок для разбитых комментариев Текст не обертывается вокруг правого плавающего изображения Установите cookie, чтобы пользователь обнаружил предупреждающий баннер / всплывающее окно только один раз. с помощью ACF datepicker для фильтрации сообщений на странице Могут ли простые параметры сохранения администратора в Multisite? Как использовать фильтр для отправки комментариев / вставки Функция image_size_names_choose не работает должным образом Добавьте класс .last к последнему <li> в каждое ul.sub-menu

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 правильно работать с этой таксономией.

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

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

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

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

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