Intereting Posts
Как проверить изображения перед эхом Ищете простой и легкий плагин для статистики после чтения Таблицы базы данных Утерянные индексы? Как восстановить? Вставка динамических параметров списка в полноэкранном редакторе Tinymce WP 3.1 meta_query для нескольких настраиваемых значений полей Как использовать настраиваемые каталоги загрузки в файловой системе и URL-адресе на основе типа или категории мультимедиа Настройка многоязычного сайта wordpress Не удается найти, где изменить <html> attrbitutes Как создать количество настраиваемых просмотров сообщений как избежать преобразования символов на страницах WordPress? Добавить родительскую категорию рядом с большинством используемых панелей какой файл необходимо создать в папке плагина, чтобы показать все содержимое сообщения CPT с помощью ссылки permalink Как исключить «не классифицированный» из виджета настраиваемых категорий? Визуально изменить тему через строку запроса? Глобальная навигация в многопользовательском режиме: проблема с категориями

Действия 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?

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

В файле '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 );