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

|

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

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

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

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

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

Разница между actions и filters

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

Пример action: add_action('save_post', 'yelly_save_post_action'); — добавит функцию, которая сработает при сохранении записи.

Пример filter: add_filter('the_title', 'yelly_modify_title_filter'); — изменит заголовок записи перед выводом.

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

Автоматическое добавление текста в конец записи

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

function yelly_append_text_to_content($content) {
    if (is_single()) {
        $content .= '<p><em>Спасибо за чтение! Подписывайтесь на обновления.</em></p>';
    }
    return $content;
}
add_filter('the_content', 'yelly_append_text_to_content');

Этот код проверяет, что мы на странице одной записи, и добавляет абзац с текстом в конец контента. Просто и эффективно.

Автоматическая отправка письма после публикации записи

Если нужно уведомлять администратора или подписчиков о новых публикациях, можно использовать action publish_post или transition_post_status.

function yelly_notify_admin_on_publish($ID, $post) {
    if ($post->post_status == 'publish') {
        $admin_email = get_option('admin_email');
        $subject = 'Новая публикация: ' . $post->post_title;
        $message = 'Опубликована новая запись: ' . get_permalink($ID);
        wp_mail($admin_email, $subject, $message);
    }
}
add_action('publish_post', 'yelly_notify_admin_on_publish', 10, 2);

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

Изменение заголовка записи с помощью фильтра

С помощью фильтра the_title можно динамически изменять заголовки, например, добавлять префикс для определённой категории.

function yelly_add_prefix_to_title($title, $id = null) {
    if (is_admin()) return $title; // не менять в админке
    if ($id) {
        $categories = get_the_category($id);
        foreach ($categories as $category) {
            if ($category->slug == 'novosti') {
                $title = '[Новость] ' . $title;
                break;
            }
        }
    }
    return $title;
}
add_filter('the_title', 'yelly_add_prefix_to_title', 10, 2);

Такой код добавляет метку [Новость] перед заголовками постов из категории «Новости», что помогает визуально выделять их на сайте.

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

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

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

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

function yelly_send_notification($message) {
    // базовая отправка
    mail('admin@yelly.ru', 'Уведомление', $message);
    // дополнительные действия
    do_action('yelly_after_send_notification', $message);
}

Далее кто-то может подключиться к этому хуку и реализовать отправку в Telegram или Slack, не меняя ваш плагин.

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

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

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

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

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

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

Как создать автообновляемый каталог товаров в WordPress с использованием AJAX
03.04.2026
Как отключить автозапуск WP-Cron в WordPress и настроить системный cron
15.03.2026
Как создать автоматические сообщения в WordPress с WPRemark: практические примеры
05.01.2026
Как создать уникальные метаполя для постов в WordPress: практические примеры и код
24.01.2026
Как использовать хуки в WordPress для автоматизации задач
26.11.2025
×
День SEO
Время сделать подарок своему WordPress!
-20% на премиум

шаблоны и плагины

Порадуй свой сайт ⋙