current_filter()
Получает название текущего фильтра.
Предназначен для использования внутри функции, прикрепленной к фильтру, чтобы динамически получать название текущего фильтра с которого вызывается функция.
Аналогичные функции:
- current_filter() — получает название текущего события или фильтра.
- current_action() — копия функции current_filter().
- doing_filter() — проверяет обрабатывается ли в текущий момент указанный хук.
- doing_action() — копия функции doing_filter().
- did_action() — получает число, сколько раз сработал указанный хук.
- did_filter() — C WP 6.1. Получает число, сколько раз сработал указанный хук.
1 раз — 0.00001 сек (скорость света) | 50000 раз — 0.01 сек (скорость света) | PHP 7.1.11, WP 4.9.5
Хуков нет.
Возвращает
Строку
. Название текущего фильтра или действия.
Использование
$filter_name = current_filter();
Примеры
#1 Динамическое изменение заголовка письма
Интересный пример, показывающий как можно динамически изменить заголовок письма (от кого письмо), в зависимости от того с какого фильтра срабатывает одна и та же функция (filter_system_from_mail).
function filter_system_from_mail(){ $opt = 'wp_mail_from' == current_filter() ? 'admin_email' : 'blogname'; return get_option( $opt ); } add_filter( 'wp_mail_from', 'filter_system_from_mail' ); add_filter( 'wp_mail_from_name', 'filter_system_from_mail' );
Заметки
- Global. Строка[]. $wp_current_filter Stores the list of current filters with the current one last
Список изменений
С версии 2.5.0 | Введена. |
Код current_filter() current filter WP 6.7.1
function current_filter() { global $wp_current_filter; return end( $wp_current_filter ); }