Intereting Posts
Переписать URL для пользовательского типа сообщения wp_query для первого липкого, затем отобразите остальную часть сообщений, исключая первую липкую Необходимо настроить условие, чтобы сказать, если я вытаскиваю категории из сообщения, чтобы вытащить только первый W3 Total Cache не может создавать файлы Правильный способ заменить the_content только для страниц, созданных настраиваемым плагином Неустранимая ошибка Вызов для фильтра функций-членов () Как отображать сообщения CPT на странице индекса Неустранимая ошибка после изменений в functions.php, даже с исходным файлом Страница категории и редактирование страницы с этой категорией очень медленно Как скрыть определение категории в сообщении? WordPress Duplicator ZipArchive ext fail Вместо изображений появляется подозрительная мессаж Как я могу отслеживать активных пользователей моего плагина? и почему WordPress.Org не предлагает это? Виджет на правой стороне страницы перекрывается с левой стороны Создание URL-адреса Add Media Link в поле

Можно ли переопределить эту функцию / класс в дочерней теме?

Можно ли переопределить эту функцию widget из родительской темы? Я видел этот блог, но он касался более простого случая.

http://venutip.com/content/right-way-override-theme-functions

родитель

 class Chocolat_Widget_New_Entrys extends WP_Widget { function __construct() {... function widget( $args, $instance ) {... } add_action( 'widgets_init', create_function( '', 'return register_widget( "Chocolat_Widget_New_Entrys" );' ) ); 

Я попытался использовать remove_action('widgets_init','???'); но вскоре понял, что я не могу справиться с функцией, которая ее зарегистрировала!

Я думал об переопределении функции и создании подкласса, но все же он зарегистрирован в родительском объекте по имени родительского класса.

Я думал о parents.php копировании всего класса, но child functions.php загружается до parents.php .

Solutions Collecting From Web of "Можно ли переопределить эту функцию / класс в дочерней теме?"

Вам просто нужно запустить свой код с более высоким приоритетом, чем родительская тема, по умолчанию функция add_action равна 10, поэтому вы можете использовать:

 function s157343_unregister_widgets() { unregister_widget( 'Chocolat_Widget_New_Entrys' ); } add_action( 'widgets_init', 's157343_unregister_widgets', 20 ); 

Это позволит отменить регистрацию этого виджета. Конечно, вы все равно можете создать новый класс, который расширяет класс этого виджета, чтобы переопределить методы, которые вы хотите, и зарегистрировать новый виджет на основе этого:

 class my_Chocolat_Widget_New_Entrys extends Chocolat_Widget_New_Entrys() { public function __construct() {} public function widget( $args, $instance ) {} } add_action( 'widgets_init', create_function( '', 'return register_widget( "my_Chocolat_Widget_New_Entrys" );' ) );