ТОП-20 самых полезных хуков WordPress (Actions и Filters)

ТОП-20 самых полезных хуков WordPress (Actions и Filters) + теория и примеры

Разберём теорию и сразу посмотрим самые полезные хуки с практическими примерами.

Что такое хуки в WordPress (Hooks)

Хуки (Hooks) в WordPress — это механизм расширения функциональности сайта без изменения ядра CMS.

Проще говоря:

— WordPress «ставит точки расширения» в коде
— разработчик «подключает» свои функции
— сайт получает новую логику без редактирования ядра

Это основа всей архитектуры WordPress.

Зачем нужны хуки

Хуки используются для:

  • изменения контента сайта
  • добавления скриптов и стилей
  • работы с пользователями
  • SEO-оптимизации
  • кастомизации WooCommerce
  • создания плагинов

Виды хуков в WordPress

В WordPress существует 2 типа хуков:

1. Actions (действия)

Action (действие) — это хук, который выполняет код в определённый момент времени.

📌 Особенности:

  • не возвращает значение
  • выполняет действие
  • используется для событий

Пример:

add_action('wp_footer', function () {
    echo '<p>Сайт загружен</p>';
});

Этот код просто выполняется в нужный момент.

2. Filters (фильтры)

Filter (фильтр) — это хук, который изменяет данные перед их выводом.

📌 Особенности:

  • принимает значение
  • изменяет его
  • обязательно возвращает результат

Пример:

add_filter('the_title', function ($title) {
    return '🔥 ' . $title;
});

Здесь мы изменяем заголовок статьи.

Главное отличие Actions и Filters

Actions Filters
Выполняют код Изменяют данные
Не возвращают результат Обязательно возвращают
Используются для событий Используются для обработки данных

ТОП-10 ACTION HOOKS WordPress

wp_enqueue_scripts — подключение файлов

📌 Подключение JS только на главной

add_action('wp_enqueue_scripts', function () {
    if (is_front_page()) {
        wp_enqueue_script('home-js', get_template_directory_uri() . '/home.js', [], null, true);
    }
});

init — регистрация функций

add_action('init', function () {
    register_post_type('portfolio', [
        'label' => 'Портфолио',
        'public' => true
    ]);
});

wp_head — SEO и мета-теги

add_action('wp_head', function () {
    echo '<meta name="robots" content="index, follow">';
});

wp_footer — скрипты

add_action('wp_footer', function () {
    echo '<script>console.log("loaded")</script>';
});

template_redirect — защита страниц

add_action('template_redirect', function () {
    if (!is_user_logged_in() && is_page('dashboard')) {
        wp_redirect('/login');
        exit;
    }
});

save_post — автоматизация

add_action('save_post', function ($post_id) {
    update_post_meta($post_id, '_saved_time', time());
});

wp_login — логирование входа

add_action('wp_login', function ($login, $user) {
    update_user_meta($user->ID, 'last_login_ip', $_SERVER['REMOTE_ADDR']);
}, 10, 2);

user_register — приветствие

add_action('user_register', function ($user_id) {
    $user = get_userdata($user_id);
    wp_mail($user->user_email, 'Добро пожаловать!', 'Спасибо за регистрацию');
});

admin_menu — админка

add_action('admin_menu', function () {
    add_menu_page('Настройки', 'Настройки', 'manage_options', 'settings', function () {
        echo '<h1>Настройки сайта</h1>';
    });
});

widgets_init — виджеты

add_action('widgets_init', function () {
    register_sidebar(['name' => 'Sidebar']);
});

ТОП-10 FILTER HOOKS WordPress

the_content — SEO блоки

add_filter('the_content', function ($content) {
    if (is_single()) {
        $content .= '<p>🔥 Читайте также другие статьи</p>';
    }
    return $content;
});

the_title — улучшение SEO

add_filter('the_title', function ($title) {
    return $title . ' | Полезная статья';
});

excerpt_length — длина сниппета

add_filter('excerpt_length', function () {
    return 25;
});

body_class — A/B тест

add_filter('body_class', function ($classes) {
    $classes[] = 'variant-a';
    return $classes;
});

nav_menu_css_class — меню

add_filter('nav_menu_css_class', function ($classes) {
    $classes[] = 'nav-item';
    return $classes;
});

upload_mimes — SVG загрузка

add_filter('upload_mimes', function ($mimes) {
    $mimes['svg'] = 'image/svg+xml';
    return $mimes;
});

login_redirect — редирект

add_filter('login_redirect', function () {
    return '/account';
});

pre_get_posts — SEO фильтрация

add_filter('pre_get_posts', function ($query) {
    if ($query->is_search) {
        $query->set('posts_per_page', 10);
    }
});

wp_mail_from — email бренд

add_filter('wp_mail_from', function () {
    return 'noreply@site.com';
});

comment_form_defaults — комментарии

add_filter('comment_form_defaults', function ($defaults) {
    $defaults['title_reply'] = '💬 Оставьте комментарий';
    return $defaults;
});

БОНУС: WooCommerce пример

add_action('woocommerce_single_product_summary', function () {
    echo '<p>🔥 Бесплатная доставка сегодня</p>';
}, 25);

Где использовать хуки

  • functions.php (дочерняя тема)
  • собственные плагины (лучший вариант)

Частые ошибки

  • отсутствие return в фильтрах
  • использование echo вместо фильтрации
  • неправильный pre_get_posts
  • редактирование ядра WordPress

Итог

Хуки WordPress — это фундамент системы.

С их помощью можно:

✔ изменять любой элемент сайта
✔ создавать плагины
✔ улучшать SEO
✔ кастомизировать WooCommerce

Освоение хуков это уровень профессионального WordPress разработчика.

Подписаться
Уведомить о
guest

1 Комментарий
Популярные
Новые Старые
Межтекстовые Отзывы
Посмотреть все комментарии
Антон

Долго не мог понять разницы между между видами хуков, сейчас наконец-то дошло. Статья норм!