Дополнительные возможности хуков

wordpress-hooks

Удаление экшенов и фильтров

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

Чтобы удалить колбек хука, нужно вызвать

remove_action() или remove_filter()

с теми же аргументами, с которыми он был зарегистрирован при помощи

add_action() / add_filter()

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

Тема добавляет хук себе в functions.php

Удаление хука

С момента когда колбек был добавлен в functions.php темы, вы захотите зацепиться к WordPress после того, как он был загружен. Первый хук, который запускается после того, как functions.php был загружен — after_setup_theme.

Удаление всех callback-функций

Вы также можете удалить все callback, связанные с хуком с помощью remove_all_actions() и remove_all_filters() функций.

Определение текущего фильтра

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

Проверка сколько раз хук запущен

Некоторые хуки вызываются несколько раз в ходе исполнения скрипта, но вы можете захотеть, чтобы ваш колбек запускался только один раз. В этой ситуации, вы можете проверить, сколько раз хук сработал с помощью did_action() функции.

Отладка с хуком «any»

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

Навигация по разделам:

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *