Функция doing_action() в WordPress: описание, использование и примеры кода

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, что позволяет вам более гибко управлять поведением вашего сайта. Используйте её для отладки и оптимизации вашего кода!

Leave a Reply

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