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

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

Что такое хуки в WordPress и зачем они нужны

Хуки — это специальные точки в коде WordPress, где можно "подцепить" свою функцию и изменить поведение сайта. Существует два основных типа хуков:

  • Actions — позволяют выполнять свои функции в определенный момент (например, при сохранении поста, загрузке страницы).
  • Filters — позволяют изменить данные перед их выводом или сохранением.

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

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

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

function wpmarket_notify_on_publish($post_ID) {
    $post = get_post($post_ID);
    $title = $post->post_title;
    $url = get_permalink($post_ID);
    wp_mail('admin@site.ru', 'Новая публикация', "Опубликована новая запись: $title. Ссылка: $url");
    return $post_ID;
}
add_action('publish_post', 'wpmarket_notify_on_publish');

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

Структура плагина: как организовать файлы и код

Чтобы создать плагин, достаточно создать папку в директории wp-content/plugins, например wpmarket-custom-functions, и внутри создать файл с расширением .php, например wpmarket-custom-functions.php. В начале файла нужно добавить заголовок плагина:

<?php
/**
 * Plugin Name: WP Market Custom Functions
 * Description: Пользовательские функции и хуки для сайта WP Market
 * Version: 1.0
 * Author: WP Market
 */

// Код плагина здесь

После этого вы можете добавлять свои функции и регистрировать хуки.

Рекомендации по организации кода

  • Используйте префиксы для функций, например, wpmarket_, чтобы избежать конфликтов.
  • Разбивайте код на отдельные функции по смыслу.
  • Добавляйте комментарии для удобства поддержки.

Примеры полезных фильтров для изменения поведения WordPress

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

Изменение длины отрывка (excerpt)

По умолчанию длина отрывка — 55 слов. Чтобы изменить ее, используем фильтр excerpt_length:

function wpmarket_custom_excerpt_length($length) {
    return 30; // Показывать 30 слов
}
add_filter('excerpt_length', 'wpmarket_custom_excerpt_length');

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

Добавление собственного класса к ссылкам в меню

Иногда нужно добавить CSS класс к ссылкам меню для стилизации. Для этого есть фильтр nav_menu_link_attributes:

function wpmarket_add_menu_link_class($atts, $item, $args) {
    if ($args->theme_location === 'primary') {
        $atts['class'] = 'wpmarket-menu-link';
    }
    return $atts;
}
add_filter('nav_menu_link_attributes', 'wpmarket_add_menu_link_class', 10, 3);

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

Как отлаживать плагин и проверять работу хуков

Отладка — важный этап разработки. Вот несколько советов:

  • Включите WP_DEBUG в wp-config.php, чтобы видеть ошибки и предупреждения.
  • Используйте функцию error_log() для записи отладочной информации в лог сервера.
  • Для проверки срабатывания хуков можно временно добавить запись в лог:
function wpmarket_debug_hook() {
    error_log('Хук сработал: wpmarket_debug_hook');
}
add_action('init', 'wpmarket_debug_hook');

Также удобно использовать плагины для отладки, например, Query Monitor или Debug Bar.

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

Соберем воедино все знания и создадим плагин, который добавляет в админ-панель сообщение при заходе на любую страницу редактирования записи.

<?php
/**
 * Plugin Name: WP Market Admin Notice
 * Description: Показывает уведомление в админке при редактировании записи.
 * Version: 1.0
 * Author: WP Market
 */

function wpmarket_admin_notice_edit_post() {
    $screen = get_current_screen();
    if ($screen->base === 'post' && $screen->action !== 'add') {
        echo '<div class="notice notice-info is-dismissible">'
            . 'Вы редактируете запись. Не забудьте сохранить изменения!' 
            . '</div>';
    }
}
add_action('admin_notices', 'wpmarket_admin_notice_edit_post');

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

Заключение: зачем создавать свои плагины и хуки

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

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

Как удалить или скрыть страницу в WordPress без удаления из базы
20.01.2026
Как создать автоматический импорт изображений в WordPress с помощью PHP и плагинов
16.04.2026
Автоматизация управления заказами WooCommerce с WPRemark
21.12.2025
Как удалить или скрыть товары в WooCommerce по атрибутам
17.12.2025
Как автоматически отключать неиспользуемые вариации товаров в WooCommerce
03.06.2026