Прикрепляет фильтрующую функцию к одному из существующих фильтров в коде, созданному при помощи 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
на сайте и вашему вниманию предстанет огромное количество примеров, так или иначе связанных с применением фильтров или действий.