Intereting Posts
Перенаправить дополнительный URL в Multisite в папку Виджеты исчезли с домашней страницы, а сообщения на домашней странице отключены? Помощь в использовании плагинов SEO: оптимизация SEO и Yoast SEO Plugin Как добавить пользовательскую таксономию в плагин Woocommerce Выход из системы Установить переходный процесс с ошибкой получения сообщений Я использую то же имя слива для категории и страницы Получает ли WP все post_meta на странице POST? Отобразить список пользовательских таксономий из настраиваемого типа сообщений, заказанного их родителями Создать запись в блоге из внешнего источника и установить дату публикации Могу ли я использовать два разных доменных имени в многопользовательской сети WordPress? Индивидуальный перевод метабокса Как использовать пользовательскую предыдущую / следующую ссылку? Сложные параметры Orderby: как запросить с несколькими параметрами orderby с помощью meta_value_num? Повторное создание базы данных WordPress

dynamic_sidebar () возвращает false в секции admin

Любая причина, по которой этот код не работает в разделе admin (особенно когда ajaxing, но проблема сохраняется на других страницах) WordPress, но работает просто отлично

ob_start(); dynamic_sidebar('frontpage_widgets'); $content = ob_get_clean(); print_r($content); // nothing 

боковые панели установлены из того, что я вижу (потому что я назвал свой код, который зарегистрировал боковые панели)

print_r($GLOBALS['wp_registered_sidebars'])

  Array ( [frontpage_widgets] => Array ( [name] => Frontpage Widgets [id] => frontpage_widgets [description] => Widgets for the Frontpage Widgetspage [class] => [before_widget] => ... 

Есть ли что-то, препятствующее отображению виджетов в разделе администратора?

Изменить – кажется, что виджеты не устанавливаются глобально: $ wp_registered_widgets пуст

Да, вы должны обязательно подключить эту функцию в какой-то момент после регистрации боковых панелей. Это не совсем объяснено, но подразумевается в кодексе, что эта функция dynamic_sidebar( $index ) ожидает, что они будут зарегистрированы и загружены как зарегистрированные к моменту ее запуска. В противном случае он не будет иметь ничего, чтобы соответствовать аргументу $index , который в вашем случае является 'frontpage_widgets' .

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

Если бы мне пришлось угадать руку, я бы сказал, что wp_loaded() – это самое раннее действие, к wp_loaded() вы можете безопасно подключить его. Или, если вам нужно, вы можете подключиться к wp_register_sidebar_widget чтобы подключиться к конкретному виджету, который вы тестируете.

Я предполагаю, что вы просто использовали буферизацию объектов для целей отладки. Вы можете почти всегда находить подходящее действие для привязки или области вашего шаблона для редактирования. Я считаю, что понимание порядка, в котором уволены действия, неоценимо. Взгляните на этот ответ на birgire как на хорошую ссылку, когда увольняются различные действия. Это облегчит отладку. Обычно найти подходящее место для перехвата будет довольно интуитивно понятным в зависимости от того, с чем вы работаете.

Попробуйте выйти из системы администратора, а затем просмотреть поведение кода. Иногда из-за сеанса входа в систему это поведение наблюдается. Если вы предоставите более подробную информацию по своему вопросу, может быть полезно дать лучший ответ.