Функция CURRENT_FILTER() в WordPress: быстрые факты, возвращаемое значение, использование, примеры

Функция CURRENT_FILTER() в WordPress

Функция current_filter() позволяет получить имя текущего фильтра или действия, выполняемого в WordPress.

Быстрые факты

  • Версия: Доступна с WordPress 2.5.0
  • Скорость: 0.00001 сек (1 раз) | 0.01 сек (50000 раз)
  • PHP версия: 7.1.11, WP 4.9.5
  • Хуки: Нету

Возвращаемое значение

Функция возвращает строку с именем текущего фильтра.

Как использовать

Просто вызовите функцию:

current_filter();

Примеры использования

Пример 1: Динамическое изменение заголовка email

Этот пример показывает, как можно динамически менять заголовок email (от кого он отправлен) в зависимости от того, с какого фильтра была вызвана функция:

add_filter('wp_mail_from', 'filter_system_from_mail');
add_filter('wp_mail_from_name', 'filter_system_from_mail');

function filter_system_from_mail() {
    $opt = 'wp_mail_from' == current_filter() ? 'admin_email' : 'blogname';
    return get_option($opt);
}

Пример 2: Получение имени текущего фильтра

Следующий код показывает, как получить имя текущего фильтра:

add_filter('the_content', 'wpdocs_my_filter');

function wpdocs_my_filter() {
    echo current_filter(); // 'the_content'
}

Вы также можете получить имя текущего действия:

add_action('init', 'wpdocs_my_init_function');

function wpdocs_my_init_function() {
    echo current_filter(); // 'init'
}

Ваш собственный пример

Вы можете написать собственный пример работы с этой функцией, основываясь на своем проекте.

Примечания

  • Глобальная переменная $wp_current_filter хранит список текущих фильтров, где последний элемент — это текущий фильтр.

Изменения в функции

  • С версии: 2.5.0 — Функция была введена.

Код функции CURRENT_FILTER()

Вот как реализована функция в коде WordPress:

function current_filter() {
    global $wp_current_filter;
    return end($wp_current_filter);
}

Связанные функции

Фильтры (хуки)

  • add_filter()
  • apply_filters()
  • doing_filter()
  • has_filter()
  • remove_all_filters()
  • remove_filter()

Хуки (действия и фильтры)

  • add_action()
  • apply_filters_ref_array()
  • did_action()
  • do_action()
  • do_action_ref_array()
  • doing_action()
  • has_action()
  • remove_action()
  • remove_all_actions()

Эта информация поможет вам лучше понять, как работает функция current_filter() и как ее использовать в своих проектах на WordPress.

Leave a Reply

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