Как использовать хуки и фильтры в WordPress: подробное руководство для начинающих

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

Что такое хуки в WordPress и зачем они нужны

Хуки — это специальные точки в коде WordPress, где можно «подцепить» свою функцию и выполнить дополнительный код. Они бывают двух типов: действия (actions) и фильтры (filters).

Actions — это хуки, которые просто вызывают вашу функцию в определённый момент (например, при загрузке страницы, при сохранении поста). Они позволяют выполнять дополнительные операции.

Filters — хуки, которые принимают данные, позволяют их изменить и вернуть обратно. Например, можно изменить текст перед выводом на экран.

Примером action-хука служит wp_head, который вызывается в секции <head> темы. Вы можете добавить туда свой код, например подключить CSS.

Пример использования action-хука

Добавим подключение кастомного стиля через hook wp_head в файл functions.php вашей темы:

function wpupdate_add_custom_style() {
    echo '<style>body { background-color: #f0f0f0; }</style>';
}
add_action('wp_head', 'wpupdate_add_custom_style');

Этот код добавит серый фон ко всем страницам сайта, не меняя файл темы напрямую.

Фильтры в WordPress — как изменить данные на лету

Фильтры принимают один или несколько параметров, позволяют изменить их и вернуть обратно. Это мощный способ корректировать вывод без копирования и изменения плагинов.

Классический пример — фильтр the_content, который изменяет содержимое поста перед выводом.

Пример изменения контента через фильтр

Добавим текст в конец каждого поста:

function wpupdate_append_text_to_post($content) {
    if (is_single()) {
        $content .= '<p><em>Спасибо за прочтение!</em></p>';
    }
    return $content;
}
add_filter('the_content', 'wpupdate_append_text_to_post');

Такой подход позволяет точно и легко вносить изменения в контент без риска повредить исходные файлы.

Как найти подходящие хуки и фильтры для своих задач

WordPress содержит сотни встроенных хуков и фильтров. Чтобы узнать, какие есть, можно использовать несколько подходов:

  • Посмотреть официальную документацию на WordPress Developer Resources.
  • Использовать плагин Query Monitor или Debug Bar, которые показывают активные хуки при работе сайта.
  • Искать в коде темы или плагина вызовы do_action() и apply_filters().

Например, если вам нужно добавить код в футер, ищите action wp_footer. Для изменения заголовка поста — фильтр the_title.

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

Автоматическое добавление мета-тега в заголовок сайта

Допустим, вы хотите добавить в раздел <head> уникальный мета-тег, например для верификации сайта:

function wpupdate_add_meta_verification() {
    echo '<meta name="google-site-verification" content="ваш_код_верификации" />';
}
add_action('wp_head', 'wpupdate_add_meta_verification');

Без правки файлов темы вы расширили функциональность.

Изменение текста кнопки "Читать далее" на странице блога

Стандартный текст "Read More" или "Читать далее" можно заменить через фильтр:

function wpupdate_change_read_more_text() {
    return 'Подробнее »';
}
add_filter('the_content_more_link', 'wpupdate_change_read_more_text');

Так вы делаете сайт более уникальным и адаптированным под вашу аудиторию.

Отключение автоматического добавления параграфов в контент

WordPress автоматически вставляет теги <p> и <br> через функцию wpautop. Иногда это мешает, например при работе с HTML-кодом в постах.

remove_filter('the_content', 'wpautop');

Этот код отключит автопараграфы для всего контента.

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

Если хотите посмотреть, какие хуки срабатывают на страницах сайта, обратите внимание на следующие плагины:

  • Simply Show Hooks — выводит список хуков, которые доступны на текущей странице.
  • Hook Me Up — помогает понять, какие хуки используются плагинами и темами.
  • Code Snippets — удобный менеджер для добавления пользовательских функций с хуками и фильтрами без редактирования functions.php.

Использование этих инструментов значительно упрощает отладку и разработку.

Создаем собственный хук: расширяем возможности темы или плагина

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

Для создания action-хука используйте do_action. Пример:

function wpupdate_my_custom_function() {
    do_action('wpupdate_before_content');
    echo '<div>Основной контент здесь</div>';
    do_action('wpupdate_after_content');
}

Теперь в другом месте можно привязаться к этим хукам:

add_action('wpupdate_before_content', function() {
    echo '<p>Этот текст добавлен перед контентом</p>';
});

Фильтры создаются через apply_filters схожим образом.

Подводим итоги использования хуков и фильтров в WordPress

Хуки и фильтры — основа гибкой и безопасной кастомизации WordPress. Они позволяют встраиваться в логику системы без изменений ядра, что облегчает обновления и поддержку сайта.

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

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как удалить старые редакции постов в WordPress и оптимизировать базу данных
28.11.2025
Создание автоматических редиректов в WordPress без плагинов
17.01.2026
Как избежать проблем с базой данных при масштабных обновлениях WordPress
08.01.2026
Как избежать конфликтов между плагинами в WordPress: практические решения и примеры кода
06.12.2025
Как добавить автоматическое удаление спама в комментариях WordPress
15.12.2025