Как использовать фильтры для модификации выводимых данных

В WordPress фильтры — это мощный инструмент, который позволяет изменять или дополнять данные перед их выводом или сохранением. В отличие от действий (хуков), которые выполняют дополнительные операции, фильтры принимают данные, модифицируют их и возвращают обратно. В этой статье мы подробно разберём, как использовать фильтры для изменения контента, метаданных и других элементов сайта на WordPress, а также приведём примеры полезных плагинов и собственного кода.

Что такое фильтры в WordPress и зачем они нужны

Фильтры (filters) — это специальные хуки, которые позволяют перехватывать данные и изменять их перед тем, как они будут выведены или обработаны дальше. Они используются для:

  • Изменения содержимого постов или страниц перед выводом.
  • Модификации метаданных, например, заголовков, описаний.
  • Изменения параметров запросов или настроек.
  • Подстройки данных плагинов и тем без изменения их исходного кода.

Фильтры применяются с помощью функции add_filter(), которая прикрепляет вашу функцию-обработчик к определённому фильтру.

Как подключить фильтр в WordPressa: базовый синтаксис

Для подключения фильтра используется следующий синтаксис:

add_filter('hook_name', 'wordpressa_custom_filter_function', 10, 1);

Где:

  • 'hook_name' — имя фильтра (хука), который вы хотите изменить.
  • 'wordpressa_custom_filter_function' — ваша функция, которая будет принимать и возвращать изменённые данные.
  • 10 — приоритет (чем меньше число, тем раньше вызывается функция).
  • 1 — количество аргументов, которые функция принимает.

Пример простой функции-фильтра, которая добавляет текст в конце контента поста:

function wordpressa_append_text_to_content($content) {
    return $content . '<p>Спасибо за чтение на WordPressa.ru!</p>';
}
add_filter('the_content', 'wordpressa_append_text_to_content');

Примеры практического использования фильтров в WordPress

1. Изменение заголовка страницы

Иногда нужно динамически изменять заголовок страницы — например, добавить название сайта или тег. Фильтр wp_title позволяет это сделать.

function wordpressa_modify_wp_title($title) {
    return $title . ' | WordPressa.ru';
}
add_filter('wp_title', 'wordpressa_modify_wp_title');

Этот код добавит в конец каждого заголовка сайта текст «| WordPressa.ru».

2. Фильтрация авторов в списке

Если на сайте несколько авторов, но нужно исключить из вывода администратора, можно использовать фильтр, который изменит массив авторов.

function wordpressa_exclude_admin_author($authors) {
    foreach ($authors as $key => $author) {
        if ($author->user_login === 'admin') {
            unset($authors[$key]);
        }
    }
    return $authors;
}
add_filter('wp_list_authors', 'wordpressa_exclude_admin_author');

Обратите внимание, что этот пример нужно адаптировать под конкретный хук и структуру данных, но идея остаётся полезной для кастомизации.

3. Изменение вывода даты публикации

Иногда необходимо изменить формат или стиль вывода даты. Фильтр get_the_date позволяет это сделать.

function wordpressa_custom_date_format($date) {
    return 'Опубликовано: ' . $date;
}
add_filter('get_the_date', 'wordpressa_custom_date_format');

Теперь перед датой будет добавлен текст «Опубликовано:».

Как создавать собственные фильтры для расширения функционала

Вы можете создавать свои собственные фильтры в плагинах или темах, чтобы дать возможность другим разработчикам менять поведение вашего кода.

Для этого используется функция apply_filters(). Пример:

function wordpressa_get_custom_message() {
    $message = 'Привет от WordPressa!';
    /** Применяем фильтр к сообщению */
    return apply_filters('wordpressa_custom_message_filter', $message);
}

Теперь любой разработчик или вы сами можете изменить это сообщение через фильтр wordpressa_custom_message_filter:

function wordpressa_change_custom_message($msg) {
    return $msg . ' Спасибо, что читаете наш сайт.';
}
add_filter('wordpressa_custom_message_filter', 'wordpressa_change_custom_message');

Полезные плагины для работы с фильтрами в WordPress

  • Code Snippets — позволяет легко добавлять свои функции, в том числе с фильтрами, без правки файлов темы или плагинов.
  • Filter Everything — визуальный редактор для создания фильтров контента и данных.
  • WP Hook Manager — помогает искать и управлять всеми хуками на сайте, упрощая работу с фильтрами.

Советы и лучшие практики при работе с фильтрами

При использовании фильтров важно помнить несколько правил:

  • Всегда возвращайте модифицированные данные, иначе вы сломаете вывод.
  • Используйте префиксы (например, wordpressa_) для имён функций, чтобы избежать конфликтов.
  • Проверяйте аргументы фильтра и корректно их обрабатывайте.
  • Не перегружайте один фильтр слишком большим количеством кода — лучше разбивать логику.
  • Тестируйте изменения на копии сайта, чтобы не нарушить работу.
Как создать динамические формы в WordPress с помощью WPRemark
19.03.2026
Как автоматически удалять неактивных пользователей в WordPress
25.03.2026
Как отключить Gutenberg и вернуть классический редактор в WordPress
26.02.2026
Как удалить и запретить удаление записей в WordPress
03.02.2026
Как автоматически удалять заказы WooCommerce после отмены или возврата оплаты
28.04.2026