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

Что такое хуки в WordPress: action и filter

В системе WordPress хуки — это точки привязки, которые позволяют разработчикам вмешиваться в работу ядра, тем и плагинов без изменения их исходного кода. Это один из основных способов расширения и кастомизации функционала. Хуки делятся на два типа: action и filter.

Action хуки позволяют выполнять дополнительные действия в определенный момент — например, добавить контент, отправить уведомление или изменить базу данных. Filter хуки дают возможность менять данные перед тем, как они будут использованы или выведены — например, отфильтровать заголовок, изменить содержимое поста или обработать параметры запроса.

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

Как правильно использовать action хуки в WordPress

Action хуки вызываются в определенных местах кода WordPress. Чтобы подключиться к action хуку, нужно использовать функцию add_action(). Она принимает два основных параметра: имя хука и имя функции, которая будет выполнена.

Например, чтобы добавить текст в футер сайта, можно использовать хук wp_footer:

function wpmagazin_add_footer_text() {
    echo '<p>Спасибо за посещение нашего сайта!</p>';
}
add_action('wp_footer', 'wpmagazin_add_footer_text');

Этот код добавит простой HTML-текст в нижнюю часть страницы. Такой подход позволяет расширять функционал без правки исходных файлов темы.

Важно помнить, что функции, подключаемые к action, не должны возвращать значение — они просто выполняют действия.

Приоритет и количество аргументов

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

Например, если нужно, чтобы ваша функция выполнялась после всех остальных, задайте приоритет 99:

add_action('wp_footer', 'wpmagazin_add_footer_text', 99);

Количество аргументов указывается, если функция принимает параметры, передаваемые хуком.

Применение filter хуков для изменения данных в WordPress

Filter хуки позволяют изменять содержимое перед его выводом или использованием. Для подключения используется функция add_filter() с теми же параметрами, что и у add_action.

Рассмотрим пример: изменим заголовок поста, чтобы добавить к нему приставку.

function wpmagazin_modify_post_title($title) {
    return '🔥 ' . $title;
}
add_filter('the_title', 'wpmagazin_modify_post_title');

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

Использование фильтров для безопасности и оптимизации

Filters используются не только для визуальных изменений. Например, можно фильтровать пользовательские вводы, очищать HTML или оптимизировать запросы к базе данных.

Вот пример фильтра, который удаляет все HTML-теги из комментариев перед сохранением:

function wpmagazin_strip_comment_tags($commentdata) {
    $commentdata['comment_content'] = wp_strip_all_tags($commentdata['comment_content']);
    return $commentdata;
}
add_filter('preprocess_comment', 'wpmagazin_strip_comment_tags');

Такой подход повышает безопасность сайта, предотвращая XSS-атаки.

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

Работа с хуками требует аккуратности и понимания порядка выполнения кода. Вот несколько рекомендаций:

  • Используйте префиксы в названиях функций (например, wpmagazin_), чтобы избежать конфликтов с другими плагинами.
  • Не меняйте глобальные переменные напрямую внутри функций, подключенных к хукам — это может привести к непредсказуемым ошибкам.
  • Документируйте свои хуки и функции, чтобы облегчить поддержку и развитие кода.
  • Тестируйте изменения на локальной копии сайта перед публикацией.

Инструменты для поиска и отладки хуков

Чтобы узнать, какие хуки вызываются на странице, можно использовать плагины:

  • Query Monitor — показывает активные хуки и их приоритеты.
  • Simply Show Hooks — визуализирует хуки прямо на фронтенде.

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

Пример создания собственного action и filter хука в плагине

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

Пример создания action хука:

function wpmagazin_custom_action() {
    do_action('wpmagazin_before_content');
}

// В шаблоне вызываем этот хук
wpmagazin_custom_action();

Другие разработчики смогут подключаться к wpmagazin_before_content и выполнять свои функции.

Для фильтра это выглядит так:

function wpmagazin_custom_filter($content) {
    return apply_filters('wpmagazin_filter_content', $content);
}

// В шаблоне
$content = wpmagazin_custom_filter($content);

Это позволит изменять содержимое через подключение к фильтру wpmagazin_filter_content.

Заключение

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

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

Как отключить пагинацию в WordPress без плагинов
25.02.2026
WooCommerce: автоматическая очистка корзины и отслеживание брошенных заказов
23.04.2026
Как удалить пустые категории в WordPress с помощью кода
27.03.2026
WooCommerce: как изменить количество товаров в корзине без перезагрузки страницы
18.05.2026
WooCommerce: автоматическое удаление неоплаченных заказов через код
30.05.2026