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

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

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

Хуки делятся на два вида: actions и filters. Они позволяют разработчикам вставлять свои функции в определенные места выполнения кода WordPress.

Action (действия)

Action-хуки позволяют выполнить код в определенный момент времени. Они не изменяют данные, а просто запускают функцию. Например, вы хотите добавить свой код после публикации поста.

Filter (фильтры)

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

Использование action-хуков: примеры и рекомендации

Для подключения action-хука используется функция add_action(). Она принимает имя хука, вашу функцию и при необходимости приоритет и количество аргументов.

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

function wpcoder_admin_notice() {
    echo '<div class="notice notice-success is-dismissible"><p>Привет из wpcoder.ru!</p></div>';
}
add_action('admin_notices', 'wpcoder_admin_notice');

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

Пример: отправка письма при публикации поста

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

function wpcoder_notify_admin_on_publish($post_ID) {
    $post = get_post($post_ID);
    $author = get_userdata($post->post_author);
    $to = get_option('admin_email');
    $subject = 'Новая публикация на сайте';
    $message = 'Пользователь ' . $author->display_name . ' опубликовал пост: ' . $post->post_title;
    wp_mail($to, $subject, $message);
}
add_action('publish_post', 'wpcoder_notify_admin_on_publish');

Такой код можно добавить в functions.php вашей темы или оформить как плагин.

Использование filter-хуков: изменение данных на лету

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

Пример: изменение заголовка поста

Добавим приставку «[WPCoder]» ко всем заголовкам постов на сайте.

function wpcoder_modify_post_title($title) {
    if (is_singular('post')) {
        $title = '[WPCoder] ' . $title;
    }
    return $title;
}
add_filter('the_title', 'wpcoder_modify_post_title');

Этот фильтр сработает при выводе заголовков через функцию the_title().

Пример: фильтрация содержимого перед выводом

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

function wpcoder_add_signature_to_content($content) {
    if (is_singular('post')) {
        $content .= '<p><em>Статья подготовлена командой wpcoder.ru</em></p>';
    }
    return $content;
}
add_filter('the_content', 'wpcoder_add_signature_to_content');

Как найти нужный хук: лучшие практики и инструменты

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

  • Читайте документацию на developer.wordpress.org, там есть подробные списки хуков.
  • Используйте плагин Query Monitor для отладки и просмотра хуков, которые вызываются на странице.
  • Поищите в исходниках темы или плагина, чтобы понять, где именно сработает хук.
  • Если не знаете, какой хук выбрать, можно временно добавить универсальный action на all и логировать вызовы:
function wpcoder_log_all_hooks($tag) {
    error_log('Hook called: ' . $tag);
}
add_action('all', 'wpcoder_log_all_hooks');

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

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

Существует несколько плагинов, которые помогут вам работать с хуками:

  • Code Snippets — позволяет добавлять PHP-код (в том числе с хуками) без правки файлов темы.
  • Hook Me Up — визуальный инструмент для поиска и анализа хуков.
  • Simply Show Hooks — выводит на фронтенде информацию о хуках, что удобно для разработки.

Заключение по использованию хуков

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

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

Автоматический импорт товаров из CSV в WooCommerce: пошаговое руководство
31.03.2026
Как использовать WPCommunity для создания социальной сети на WordPress
04.01.2026
Как автоматизировать создание и удаление тематических категорий в WordPress
21.01.2026
Как автоматизировать создание и удаление таксономий в WordPress с помощью кода
04.04.2026
Создание динамических QR-кодов в WordPress с помощью PHP
27.12.2025