DOING_ACTION() │ WP 3.9.0
Функция doing_action() позволяет получить имя действия, которое в данный момент обрабатывается в WordPress.
Что такое doing_action()?
Функция current_action() возвращает только последнее выполняемое действие, а did_action() показывает, сколько раз действие было вызвано в текущем запросе.
Используя doing_action(), вы можете проверить любое действие, которое в данный момент выполняется, независимо от его порядка.
Примечание о производительности
- Время выполнения
doing_filter():- 1 вызов — 0.000001 сек (скорость света)
- 50000 вызовов — 0.02 сек (скорость света)
- Версия PHP: 7.2.5, WordPress: 4.9.8
Возвращаемое значение
Функция возвращает:
true— если действие в данный момент выполняется.false— если действие не выполняется.
Как использовать
Для проверки действия вы можете использовать следующий код:
doing_action( $hook_name );
Параметры
$hook_name(строка|null) — название хука действия, которое нужно проверить.- По умолчанию:
null, что проверяет, выполняется ли в данный момент какое-либо действие.
Примеры
Пример 1: Проверка события wp_head
Добавим фильтр для события wp_head:
add_filter( 'wp_head', function(){
var_dump( doing_filter( 'wp_head' ) );
die;
} );
/ Результат:
Когда событие wp_head будет вызвано, WordPress остановит выполнение и отобразит bool(true).
/
Добавьте свой пример
Заметки
- Также ознакомьтесь с функциями:
current_action()did_action()
История изменений
- Версия 3.9.0 — Введена функция.
Исходный код функции
Функция doing_action() находится в файле wp-includes/plugin.php:
function doing_action( $hook_name = null ) {
return doing_filter( $hook_name );
}
Связанные функции
Действия (Hooks)
add_action()did_action()do_action()do_action_ref_array()has_action()remove_action()remove_all_actions()
Фильтры (Hooks)
add_filter()apply_filters()apply_filters_ref_array()current_filter()doing_filter()has_filter()remove_all_filters()remove_filter()
Заключение
Функция doing_action() — это полезный инструмент для проверки выполнения действий в WordPress, что позволяет вам более гибко управлять поведением вашего сайта. Используйте её для отладки и оптимизации вашего кода!