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

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

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

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

Всего существует два основных типа хуков: actions и filters. Actions выполняют код в определённый момент, а filters изменяют данные перед их выводом или сохранением.

Использование хуков — это основа написания плагинов и тем, ведь они дают гибкость и контроль над процессами в WordPress.

Разница между actions и filters: практические примеры

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

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

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

Добавим сообщение в админ-панель после сохранения поста:

function wordpressa_post_save_notice($post_id) {
    if (get_post_type($post_id) === 'post') {
        add_action('admin_notices', function() {
            echo '<div class="notice notice-success is-dismissible">Пост успешно сохранён!</div>';
        });
    }
}
add_action('save_post', 'wordpressa_post_save_notice');

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

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

Изменим заголовок поста, добавив префикс:

function wordpressa_filter_post_title($title) {
    return '[ВАЖНО] ' . $title;
}
add_filter('the_title', 'wordpressa_filter_post_title');

Этот фильтр добавит текст в начало каждого заголовка поста на сайте.

Как найти и использовать хуки в WordPress: советы и инструменты

Чтобы использовать хуки, нужно знать их имена и моменты срабатывания. К счастью, WordPress имеет обширную документацию в Codex и Developer Handbook, где перечислены стандартные хуки.

Для поиска хуков в коде можно использовать IDE с поиском по проекту, или специальные плагины, например, Query Monitor и Debug Bar, которые показывают активные хуки и порядок их выполнения.

Ещё один полезный инструмент — плагин Simply Show Hooks, который визуально выводит все хуки на странице, что помогает понять, где и какие хуки можно применить.

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

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

Иногда нужно расширить форму комментариев дополнительным полем. Это удобно делать через action-хук comment_form_after_fields:

function wordpressa_add_custom_comment_field() {
    echo '<p class="comment-form-phone"><label for="phone">Телефон</label><input id="phone" name="phone" type="text" size="30" /></p>';
}
add_action('comment_form_after_fields', 'wordpressa_add_custom_comment_field');

Чтобы сохранить это поле, нужно использовать action preprocess_comment:

function wordpressa_save_comment_phone($commentdata) {
    if (isset($_POST['phone'])) {
        $commentdata['comment_content'] .= '\nТелефон: ' . sanitize_text_field($_POST['phone']);
    }
    return $commentdata;
}
add_filter('preprocess_comment', 'wordpressa_save_comment_phone');

Изменение шаблона вывода контента с помощью фильтров

Допустим, нужно автоматически добавлять подпись в конце каждого поста. Для этого используем фильтр the_content:

function wordpressa_append_signature($content) {
    if (is_single() && in_the_loop() && is_main_query()) {
        $signature = '<p>— Автор статьи, wordpressa.ru</p>';
        return $content . $signature;
    }
    return $content;
}
add_filter('the_content', 'wordpressa_append_signature');

Рекомендации по написанию собственных хуков в своих плагинах и темах

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

Для создания action-хука используйте функцию do_action('hook_name', $args);, а для фильтра — apply_filters('hook_name', $value, $args);.

function wordpressa_custom_function() {
    $data = 'Исходные данные';
    $data = apply_filters('wordpressa_custom_filter', $data);
    do_action('wordpressa_custom_action', $data);
}

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

Заключение

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

Как сделать автоматический экспорт записей WordPress в CSV
02.03.2026
Как сделать отзывы с оценками без плагинов
05.01.2026
Как создать свою таксономию в WordPress с примерами кода
02.02.2026
Как использовать хуки для изменения вывода корзины WooCommerce
20.05.2026
WooCommerce: как правильно отменять и возвращать заказы после оплаты
01.06.2026