WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

apply_filters() WP 0.71

Применяет прикрепленную к указанному фильтру PHP функцию.

Прикрепляется PHP функция к фильтру с помощью add_filter().

Используется там, где нужно изменить значение переменной (например, дать возможность изменить оригинальный текст).

Используется в плагинах и темах, для создания хуков-фильтров (зацепок дающих возможность изменить оригинальные данные).

Новые фильтры должны иметь уникальные названия и не должны совпадать с уже имеющимися в WP названиями фильтров.

Кроме фильтров в WP есть еще события (actions), их принцип работы такой же. Разница лишь в том, что фильтр должен вернуть полученную переменную, т.е. он фильтрует (изменяет) данные, а событие позволяет запустить функцию или сделать что-то еще в момент срабатывания этого события. События запускаются функцией do_action()

Смотрите также аналогичную функцию apply_filters_ref_array(), которая позволяет предавать параметры по ссылке.

1 раз = 0.000001с = скорость света | 50000 раз = 0.02с = скорость света | PHP 7.0.32, WP 5.0.3

Хуков нет.

Возвращает

Отфильтрованное значение $value, которое передается функции-обработчику хука.

Использование

apply_filters( $tag, $value, $var... );
$tag(строка) (обязательный)
Название фильтра.
По умолчанию: нет
$value(строка/массив/число/объект/логический) (обязательный)
Значение, которое будет передаваться функции в её первом аргументе, другими словами - значение, которое нужно отфильтровать.
По умолчанию: нет
$var(строка/массив/число/объект/логический)
Дополнительные значения, которые будет передавать фильтр функции.
По умолчанию: нет

Примеры

#1. Вывод на экран после фильтрации:

echo apply_filters( $tag, $value );

#2. Получение отфильтрованного значения:

$myvar = apply_filters( $tag, $value );

#3. Дополнительные аргументы:

$myvar = apply_filters( $tag, $value, $var1, $var2, ... );

#4. Пример вывода отформатированного контента записи через фильтр.

Альтернатива функции the_content():

global $post;
echo apply_filters( 'the_content', $post->post_content );

Заметки

  • Global. Массив. $wp_filter Stores all of the filters and actions.
  • Global. Массив. $wp_current_filter Stores the list of current filters with the current one last.

Список изменений

С версии 0.71 Введена.

Код apply_filters() WP 5.5.1

wp-includes/plugin.php
<?php
function apply_filters( $tag, $value ) {
	global $wp_filter, $wp_current_filter;

	$args = func_get_args();

	// Do 'all' actions first.
	if ( isset( $wp_filter['all'] ) ) {
		$wp_current_filter[] = $tag;
		_wp_call_all_hook( $args );
	}

	if ( ! isset( $wp_filter[ $tag ] ) ) {
		if ( isset( $wp_filter['all'] ) ) {
			array_pop( $wp_current_filter );
		}
		return $value;
	}

	if ( ! isset( $wp_filter['all'] ) ) {
		$wp_current_filter[] = $tag;
	}

	// Don't pass the tag name to WP_Hook.
	array_shift( $args );

	$filtered = $wp_filter[ $tag ]->apply_filters( $value, $args );

	array_pop( $wp_current_filter );

	return $filtered;
}

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

Из метки: Фильтры (хуки)

Еще из раздела: Хуки: события, фильтры

7 комментов