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

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

Что такое хуки в WordPress: разница между action и filter

В WordPress хуки делятся на два типа: action (действия) и filter (фильтры). Понимание их отличий — ключ к правильному использованию.

Action hook — это точка в коде, где можно выполнить дополнительный код. Например, добавить новый элемент в админку, отправить уведомление или выполнить произвольные операции в нужный момент.

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

Пример: если в теме есть вызов do_action('wplesson_custom_action'), то вы можете к этому действию подключить свою функцию:

add_action('wplesson_custom_action', 'wplesson_my_custom_function');
function wplesson_my_custom_function() {
    echo '<p>Это вывод по хуку wplesson_custom_action</p>';
}

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

Рассмотрим реальные задачи, которые можно решить с помощью action хуков.

Добавление кастомного блока в админ-панель

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

add_action('admin_notices', 'wplesson_custom_admin_notice');
function wplesson_custom_admin_notice() {
    echo '<div class="notice notice-info is-dismissible"><p>Добро пожаловать на сайт WPLesson!</p></div>';
}

Этот код выведет информационное сообщение в верхней части админки, которое можно закрыть.

Отправка письма при публикации новой записи

Иногда нужно уведомлять администратора о новых публикациях. Для этого используем хук publish_post:

add_action('publish_post', 'wplesson_notify_admin_new_post', 10, 2);
function wplesson_notify_admin_new_post($ID, $post) {
    $admin_email = get_option('admin_email');
    $subject = 'Новая публикация на сайте';
    $message = 'Опубликована новая запись: ' . get_the_title($ID) . "\n" . get_permalink($ID);
    wp_mail($admin_email, $subject, $message);
}

Такой код автоматически отправит письмо при публикации любой записи.

Реальные задачи с filter хуками: как модифицировать вывод и данные

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

Изменение заголовка записей

Допустим, нужно добавить приставку «[WPLesson]» ко всем заголовкам записей. Для этого используйте фильтр the_title:

add_filter('the_title', 'wplesson_add_prefix_to_title');
function wplesson_add_prefix_to_title($title) {
    if (is_admin()) {
        return $title; // не изменяем заголовки в админке
    }
    return '[WPLesson] ' . $title;
}

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

Изменение контента записей перед выводом

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

add_filter('the_content', 'wplesson_add_author_box');
function wplesson_add_author_box($content) {
    if (is_single() && in_the_loop() && is_main_query()) {
        $author_box = '<div class="author-box"><p>Автор: Иван Иванов</p></div>';
        return $content . $author_box;
    }
    return $content;
}

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

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

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

Пример: в вашей теме перед выводом футера добавьте такой код:

do_action('wplesson_before_footer');

Теперь любой плагин или функция может подключиться к этому хуку:

add_action('wplesson_before_footer', 'wplesson_custom_footer_message');
function wplesson_custom_footer_message() {
    echo '<p>Спасибо, что читаете WPLesson!</p>';
}

Создавая фильтры, используйте функцию apply_filters(). Например:

$copyright = apply_filters('wplesson_copyright_text', '© 2024 WPLesson');
echo '<p>' . $copyright . '</p>';

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

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

  • Используйте префиксы в названиях функций и хуков — чтобы избежать конфликтов с другими плагинами и темами.
  • Подписывайтесь на хуки с правильным приоритетом. Иногда нужно менять порядок выполнения функций, для этого параметр приоритета — третий аргумент в add_action и add_filter.
  • Отключайте хуки, если нужно с помощью remove_action и remove_filter.
  • Тестируйте хуки в разных условиях, чтобы не сломать вывод на сайте.

Лучшие плагины для работы и отладки хуков в WordPress

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

  • Query Monitor — показывает активные хуки, запросы, ошибки и многое другое.
  • Debug Bar — добавляет в админ-панель панель с информацией о выполнении хуков.
  • Simply Show Hooks — отображает на фронтенде список активных хуков на странице.

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

Заключение: почему хуки — обязательная часть разработки для WordPress

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

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

Как удалить пустые meta данные в WordPress для ускорения сайта
23.03.2026
Как удалить редко используемые теги в WordPress
29.12.2025
Как создать автоматический отчет об ошибках в WordPress
29.03.2026
Как автоматизировать работу с медиафайлами в WordPress
30.11.2025
Оптимизация базы данных WordPress: удаление старых и неиспользуемых данных
17.02.2026