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

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

Что такое плагин WordPress и зачем создавать свой

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

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

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

Структура базового плагина WordPress

Минимальный плагин — это один PHP-файл с заголовком, который содержит метаданные. Для удобства разработки лучше создавать отдельную папку в директории wp-content/plugins, где будут храниться все файлы плагина.

Пример структуры:

wptem-my-plugin/  
  wptem-my-plugin.php  
  readme.txt  
  assets/  
    css/  
    js/  

В основном файле плагина — wptem-my-plugin.php — обязательно должен быть заголовок, по которому WordPress распознаёт плагин:

<?php
/**
 * Plugin Name: WPTem My Plugin
 * Plugin URI: https://wptem.ru
 * Description: Пример собственного плагина для WordPress.
 * Version: 1.0
 * Author: WPTem
 * Author URI: https://wptem.ru
 * License: GPL2
 */

// Защита от прямого запуска
if (!defined('ABSPATH')) {
    exit;
}

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

Подключение хуков и создание функций плагина

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

Например, добавим простое сообщение в админ-панель WordPress:

function wptem_my_plugin_admin_notice() {
    echo '<div class="notice notice-success is-dismissible"><p>Плагин WPTem успешно активирован!</p></div>';
}
add_action('admin_notices', 'wptem_my_plugin_admin_notice');

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

Создание страницы настроек плагина (админ-меню)

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

function wptem_my_plugin_add_admin_menu() {
    add_menu_page(
        'WPTem Plugin Settings',
        'WPTem Plugin',
        'manage_options',
        'wptem-my-plugin',
        'wptem_my_plugin_settings_page',
        'dashicons-admin-generic',
        81
    );
}
add_action('admin_menu', 'wptem_my_plugin_add_admin_menu');

function wptem_my_plugin_settings_page() {
    if (!current_user_can('manage_options')) {
        return;
    }

    if (isset($_POST['wptem_my_plugin_option'])) {
        update_option('wptem_my_plugin_option', sanitize_text_field($_POST['wptem_my_plugin_option']));
        echo '<div class="updated notice"><p>Настройки сохранены.</p></div>';
    }

    $value = get_option('wptem_my_plugin_option', '');
    ?>
    <div class="wrap">
        <h1>Настройки плагина WPTem</h1>
        <form method="post" action="">
            <label for="wptem_my_plugin_option">Введите значение:</label><br>
            <input type="text" id="wptem_my_plugin_option" name="wptem_my_plugin_option" value="<?php echo esc_attr($value); ?>" /><br><br>
            <input type="submit" value="Сохранить" class="button button-primary" />
        </form>
    </div>
    <?php
}

Этот пример создаёт в меню отдельный пункт «WPTem Plugin», где можно сохранить простое текстовое значение в базу данных.

Безопасность и стандарты разработки плагинов

При создании плагина важно соблюдать основные правила безопасности:

  • Защищать файлы от прямого доступа с помощью проверки defined('ABSPATH').
  • Использовать функции очистки и валидации данных — sanitize_text_field(), esc_html(), esc_attr() и др.
  • Ограничивать доступ к административным функциям — проверять права пользователя (current_user_can()).
  • Использовать неповторяющиеся префиксы для функций, чтобы избежать конфликтов с другими плагинами.

Соблюдение этих правил гарантирует, что ваш плагин будет работать стабильно и безопасно.

Пример расширения: подключение CSS и JS в плагине

Чтобы добавить стили и скрипты, используйте хуки wp_enqueue_scripts для фронтенда и admin_enqueue_scripts для админки.

function wptem_my_plugin_enqueue_scripts() {
    wp_enqueue_style('wptem-my-plugin-style', plugins_url('assets/css/style.css', __FILE__));
    wp_enqueue_script('wptem-my-plugin-script', plugins_url('assets/js/script.js', __FILE__), array('jquery'), null, true);
}
add_action('wp_enqueue_scripts', 'wptem_my_plugin_enqueue_scripts');

function wptem_my_plugin_admin_enqueue_scripts() {
    wp_enqueue_style('wptem-my-plugin-admin-style', plugins_url('assets/css/admin-style.css', __FILE__));
}
add_action('admin_enqueue_scripts', 'wptem_my_plugin_admin_enqueue_scripts');

Создайте соответствующие файлы style.css, script.js в папке assets, чтобы подключить необходимые стили и логику.

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

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

  • Query Monitor — для отладки запросов, хуков и ошибок.
  • Debug Bar — для быстрой проверки состояния WordPress.
  • Plugin Boilerplate — шаблон для создания плагина с соблюдением стандартов.
  • PHP CodeSniffer с WordPress Coding Standards — для проверки соответствия кода стандартам WP.

Использование этих инструментов значительно ускорит и упростит процесс разработки.

Заключение: первые шаги к созданию собственного плагина на WPTem

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

Если вы хотите, чтобы мы подготовили для вас примеры более сложных плагинов или разбор конкретных задач — пишите на wptem.ru!

Удаление и изменение автоматических изображений WordPress
31.01.2026
WooCommerce: автоматическое удаление неактивных корзин и заказов
11.05.2026
Как удалить автоматически создаваемые ревизии в WordPress
05.03.2026
WooCommerce: автоматическое изменение стоимости товара при определённых условиях
18.06.2026
Как изменить метаданные для оценки статьи в WordPress
25.02.2026