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

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

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

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

Action-хук запускает функцию в определённый момент (например, при сохранении записи), а filter-хук принимает данные, модифицирует их и возвращает обратно для дальнейшей обработки.

Понимание разницы и правильное использование хуков — ключ к эффективной разработке на WordPress.

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

Рассмотрим простой пример, когда нужно отправить лог в файл при публикации новой записи:

function wpkey_log_new_post($post_ID) {
    $post = get_post($post_ID);
    if ($post->post_status == 'publish') {
        error_log('Новая публикация: ' . $post->post_title);
    }
    return $post_ID;
}
add_action('publish_post', 'wpkey_log_new_post');

Здесь мы подключаем функцию wpkey_log_new_post к действию publish_post, которое вызывается при публикации поста. Это простой способ расширить логику без правки основного кода.

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

Фильтры позволяют, например, изменить содержимое перед выводом. Например, добавим в конец каждого поста кастомный текст:

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

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

Создание собственных хуков в плагинах и темах

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

Для создания action-хука используется функция do_action, для filter-хука — apply_filters. Рассмотрим пример:

function wpkey_custom_process($data) {
    // Выполняем какую-то обработку
    $processed_data = strtoupper($data);
    /**
     * Хук фильтра для изменения обработанных данных
     */
    $processed_data = apply_filters('wpkey_custom_filter', $processed_data);

    /**
     * Action-хук после обработки
     */
    do_action('wpkey_custom_action', $processed_data);

    return $processed_data;
}

В этом примере мы создали фильтр wpkey_custom_filter, который позволяет изменить результат обработки, и action wpkey_custom_action, который оповещает о завершении обработки.

Как подключиться к своим хукам

Другой разработчик или вы сами можете подключиться к этим хукам так:

add_filter('wpkey_custom_filter', function($data) {
    return $data . ' - дополнительно изменено';
});

add_action('wpkey_custom_action', function($data) {
    error_log('Обработка завершена с данными: ' . $data);
});

Это даёт мощный инструмент для расширения функционала и интеграции.

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

Используйте правильные приоритеты и количество аргументов

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

add_action('init', 'wpkey_init_function', 20, 2);

По умолчанию приоритет — 10, а количество аргументов — 1. Чем ниже число приоритета — тем раньше выполняется функция.

Удаление хуков

Если требуется убрать ранее добавленную функцию, можно воспользоваться remove_action или remove_filter:

remove_action('init', 'wpkey_init_function', 20);

Важно указывать точные имя функции и приоритет.

Отладка хуков

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

Использование хуков с популярными плагинами

Многие крупные плагины и темы предоставляют собственные хуки для расширения. Например, плагин Clearfy Pro предлагает хуки для управления оптимизацией и очисткой WordPress.

Пример — добавим автоматическую очистку кэша после сохранения поста с помощью Clearfy Pro (если такой хук предусмотрен):

add_action('save_post', function($post_ID) {
    if (function_exists('clearfy_pro_clear_cache')) {
        clearfy_pro_clear_cache();
    }
});

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

Заключение

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

Как удалить пустые meta поля в WordPress
17.03.2026
Как выполнить проверку безопасности WordPress с помощью PHP и AJAX
19.02.2026
Как удалить неиспользуемые таксономии в WordPress
25.02.2026
WooCommerce не отображает способы оплаты при оформлении заказа: пошаговое решение
04.05.2026
WooCommerce: автоматическое удаление старых заказов по таймауту
20.05.2026

Ресурс в разработке, скоро здесь будет сайт по вордпресс