Удаление действия родительской темы в дочерней теме

22 мая 2015 г., 08:48:28
Просмотры: 18.2K
Голосов: 18

Я создаю дочернюю тему на основе Storefront.

Теперь я хочу удалить эти действия в дочерней теме:

add_action( 'woocommerce_before_shop_loop','storefront_sorting_wrapper',9 );

с помощью этой функции:

add_action( 'after_setup_theme','remove_action', 100 );
  function remove_action() {
    remove_action( 'init', 'woocommerce_before_shop_loop');
  }

но это не работает!

0
Все ответы на вопрос 2
1
32

Для удаления хука действия (action hook) необходимо использовать то же имя действия, имя функции обратного вызова и приоритет, которые использовались при добавлении действия в родительской теме. И зарегистрировать это на хуке init.

add_action( 'init', 'remove_my_action');
function remove_my_action() {
     remove_action( 'woocommerce_before_shop_loop','storefront_sorting_wrapper',9 );
}

Подробнее о remove_action

22 мая 2015 г. 09:56:27
Комментарии

Спасибо, я потратил час на поиски правильного ответа, это сработало.

Mahbub Mahbub
24 окт. 2022 г. 13:59:41
1

@Sumit прав, но если вы вызовете вашу функцию remove_action(), WordPress выдаст ошибку. Поэтому вот рабочий вариант:

add_action( 'init', 'remove_actions_parent_theme');

function remove_actions_parent_theme() {
     remove_action( 'storefront_header','storefront_skip_links',0 );
};
8 сент. 2017 г. 12:13:43
Комментарии

Спасибо за замечание, @Drik исправил. Я просто скопировал из оригинального поста :D

Sumit Sumit
4 мая 2018 г. 21:13:28