Intereting Posts
Правила перезаписи внешнего / не-WP add_rewrite_rule и настраиваемая переменная Является ли константная структура /% post_id% /% postname% быстрее или медленнее, чем просто /% postname%? Последние комментарии только от моих блогов У меня нет списка блогов – Пустая папка в блоге, воссоздающая себя выберите персонализированный тип сообщения на обычной почте Где я могу изменить значок на моем сайте WordPress? Увеличение загрузки процессора из-за спама admin-ajax.php Недопустимые предыдущие ссылки на страницы, созданные из paginate_links () Могу ли я установить класс CSS для таблицы через TinyMCE Когда я повторно сохраняю сообщение с разделами , объекты имеют двойное экранирование (> становится & gt; и т. Д.), Наличие виджета только в печати Как создать пользовательский размер изображения в папке «Загружать»? Создание страницы PHP для перенаправления вручную Пользовательский тип сообщения условно в цикле

Действия widgets_init, не запущенные с детской темы functions.php

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

Я использую Woocommerce и свою собственную дочернюю тему Storefront.

Это фрагмент того, что находится в файле functions.php дочерней темы.

add_action( 'init', 'init_storefront_child' ); function init_storefront_child() { // It seems WordPress doesn't take into consideration the 2 lines below. remove_action( 'widgets_init', 'storefront_widgets_init' ); // Not fired (or overrided by something) add_action( 'widgets_init', 'storefront_child_widgets_init' ); // Not fired (or overrided by something) } function storefront_child_widgets_init() { register_sidebar( array( 'name' => __( 'Blog Sidebar' ), 'id' => 'blog', 'description' => 'Sidebar displaying in blog.', 'before_widget' => '<aside id="%1$s" class="widget %2$s">', 'after_widget' => '</aside>', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>', ) ); } 

Поэтому боковые панели в меню «Внешний вид> Виджеты» не меняются и остаются прежними.

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

Что происходит с крюком widgets_init в дочерней теме functions.php?

Спасибо заранее.

Solutions Collecting From Web of "Действия widgets_init, не запущенные с детской темы functions.php"

В файле 'functions.php' вашей дочерней темы вам нужно использовать remove_action( 'widgets_init', '$name' ); скрипт. Например, в файле functions.php вашей темы из 20-ти детей используйте:

 remove_action( 'widgets_init', 'twentytwelve_widgets_init' ); //necessary to replace parent theme's code 

а затем подключите новый виджет к функции дочерней темы

 add_action( 'widgets_init', 'new_twentytwelve_widgets_init', 0 ); 

Мне просто нужно было изменить приоритет на init_storefront_child на 0 чтобы он срабатывал после того, как все функции были подключены, но до того, как действительно выполняются крючки:

 add_action( 'init', 'init_storefront_child', 0 );