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

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

Что такое hooks: actions и filters в WordPress

Хук — это точка в коде WordPress, в которую можно «вставить» свою функцию. Существует два основных типа хуков:

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

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

Как работать с actions: добавление своих функций

Чтобы добавить обработчик на action, используйте функцию add_action. Например, добавим вывод сообщения в подвал сайта:

function wpcontent_add_footer_message() {
    echo '<p style="text-align:center; font-size:14px; color:#666;">Спасибо, что посетили wpcontent.ru!</p>';
}
add_action('wp_footer', 'wpcontent_add_footer_message');

Здесь мы подключаем функцию wpcontent_add_footer_message к хук wp_footer, который вызывается перед закрывающим тегом </body>. Это простой способ добавить контент в подвал без правки темы.

Пример: автоматическое добавление мета-тега в head

Допустим, нужно добавить мета-тег для верификации сайта. Используем action wp_head:

function wpcontent_add_meta_verification() {
    echo '<meta name="google-site-verification" content="1234567890abcdef" />';
}
add_action('wp_head', 'wpcontent_add_meta_verification');

Этот код вставит нужный мета-тег в секцию <head> на всех страницах сайта.

Использование filters для изменения данных

Filters позволяют перехватывать данные, изменять их и возвращать обратно. Например, изменим текст «Читать далее» в ссылке поста:

function wpcontent_modify_read_more_text($more) {
    return 'Читать полностью »';
}
add_filter('the_content_more_link', 'wpcontent_modify_read_more_text');

Таким образом, мы подменили стандартный текст ссылки «Читать далее» на более привлекательный вариант.

Пример: фильтрация заголовков постов

Допустим, нужно добавить префикс к заголовкам всех постов. Используем фильтр the_title:

function wpcontent_add_prefix_to_title($title) {
    if (is_singular('post')) {
        $title = 'Новость: ' . $title;
    }
    return $title;
}
add_filter('the_title', 'wpcontent_add_prefix_to_title');

Этот код добавит слово «Новость:» перед заголовком поста, но только на страницах одиночных записей.

Приоритет и параметры: тонкая настройка хуков

Функции add_action и add_filter принимают дополнительные параметры:

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

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

add_action('wp_footer', 'wpcontent_add_footer_message', 20); // вызов позже других функций

Если вам нужно получить параметры, передаваемые хуком, добавьте их в функцию и укажите число аргументов в add_action или add_filter:

function wpcontent_custom_filter($content, $post_id) {
    // обработка
    return $content;
}
add_filter('the_content', 'wpcontent_custom_filter', 10, 2);

Практические советы по работе с хуками

При работе с хуками рекомендуем:

  • Всегда использовать уникальные префиксы в названиях функций, чтобы избежать конфликтов (например, wpcontent_).
  • Не копировать и не менять стандартные хуки ядра напрямую — используйте add_action/add_filter.
  • Документировать свои функции, чтобы быстро понимать их назначение и порядок вызова.
  • Отлаживать хуки можно с помощью плагинов, например, Query Monitor, чтобы видеть, какие хуки вызываются и с каким приоритетом.

Пример: удаление стандартного хука

Иногда нужно убрать действие, добавленное в ядро или плагин. Для этого используйте remove_action:

remove_action('wp_head', 'wp_generator'); // удаляет мета-тег с версией WP

Важно вызывать remove_action после того, как действие было добавлено (например, в хуке init).

Заключение

Хуки — мощный инструмент для гибкой настройки WordPress. Правильное использование actions и filters позволяет создавать уникальные решения, не нарушая целостность системы и обеспечивая совместимость с обновлениями.

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

Автоматическое удаление заброшенных корзин в WooCommerce по расписанию
25.05.2026
Как удалить неиспользуемые метаданные в WordPress без перегрузки базы данных
19.12.2025
Как автоматически оптимизировать картинки в WordPress при загрузке
04.02.2026
Как изменить пути к медиаданным в WordPress без потери функциональности
28.02.2026
Автоматическая оптимизация медиа в WordPress при загрузке
05.04.2026