current_filter()WP 2.5.0

Получает название текущего фильтра.

Предназначен для использования внутри функции, прикрепленной к фильтру, чтобы динамически получать название текущего фильтра с которого вызывается функция.

Аналогичные функции:

  • 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();

Примеры

0

#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() WP 6.5.2

function current_filter() {
	global $wp_current_filter;

	return end( $wp_current_filter );
}