add_filter() — вешает функцию на указанный фильтр

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

Прикрепляет фильтрующую функцию к одному из существующих фильтров в коде, созданному при помощи apply_filters().

add_filter( $tag, $function_to_add, $priority = 10, $accepted_args = 1 )
$tag
(строка) Название фильтра.
$function_to_add
Название функции, которая будет фильтровать значение переменной. Однако данная переменная позволяет задать не просто название функции строкой функция1, то также и указать функцию внутри класса следующим образом array('Класс1', 'функция_внутри_класса1') или, если всё это действо происходит внутри класса, то array(&$this, 'функция_внутри_класса1'), кроме того, если ваша версия PHP > 5.3.0, вы можете использовать анонимную функцию, как например:

add_filter( 'misha_filter_1', function( $var1 ) {
	return '<em>' . $var1 . '</em>';
});

Но я не рекомендую использовать такой прикольный способ, потому что если вдруг вам придётся сменить версию PHP на более низкую, то вы заколебетесь изменять всё это в своём коде.

И кстати, add_filter() не проверяет, существует ли указанная вами возвратная функция вообще.

$priority
(целое число) Приоритет выполнения, чем он меньше, тем раньше будет применена фильтрующая функция по отношению к другим фильтрующим функциям.
$accepted_args
(целое число) Общее количество переменных, которые будут переданы в фильтрующую функцию.
add_filter( 'misha_filter_1', function( $var1 ) {
	return '<em>' . $var1 . '</em>';
});

Но я не рекомендую использовать такой прикольный способ, потому что если вдруг вам придётся сменить версию PHP на более низкую, то вы заколебетесь изменять всё это в своём коде.

И кстати, add_filter() не проверяет, существует ли указанная вами возвратная функция вообще.

Возвращает true при успешном применении фильтрующей функции, иначе false

Примеры

Добавим произвольную строку в конце всех заголовков постов

Вряд ли это может вам понадобиться, но такой вот простой пример.

add_filter('the_title', 'misha_add_text_to_titles');
// если приоритет равен 10 и количество параметров - 1, то это значения по умолчанию и их в add_filter() можно не указывать
 
function misha_add_text_to_titles( $title ){
	$title = $title . "какой-то текст";
	return $title;
}

Множество других примеров на truemisha.ru

Прежде всего я рекомендую вам почитать полное руководство по фильтрам в WordPress.

Также можете перейти на страницу метки functions.php на сайте и вашему вниманию предстанет огромное количество примеров, так или иначе связанных с применением фильтров или действий.

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии