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

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

Что такое плагин WordPress и зачем он нужен

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

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

Структура простого плагина WordPress

Минимальная структура плагина включает в себя:

  • имя_плагина.php — основной файл плагина с заголовочной информацией;
  • папка assets (по желанию) — для скриптов, стилей, изображений;
  • вспомогательные файлы и папки (если функционал сложный).

Основной файл должен содержать информацию, необходимую WordPress для распознавания плагина:

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

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

Регистрация хуков и фильтров: как и зачем

Хуки позволяют вам взаимодействовать с ядром WordPress, изменять или дополнять его поведение. Существует два типа хуков:

  • Action (действия) — позволяют выполнять код в определённые моменты;
  • Filter (фильтры) — позволяют изменять данные перед выводом или сохранением.

Например, чтобы добавить сообщение в админ-панель, используем action admin_notices:

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

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

Создание настроек плагина: добавляем страницу в админку

Часто плагины требуют настройки. Для этого нужно добавить собственную страницу в меню админ-панели WordPress. Делается это через хук admin_menu:

function wpkey_add_settings_page() {
    add_menu_page(
        'Настройки WPKey',
        'WPKey Settings',
        'manage_options',
        'wpkey-settings',
        'wpkey_render_settings_page',
        'dashicons-admin-generic',
        81
    );
}
add_action('admin_menu', 'wpkey_add_settings_page');

function wpkey_render_settings_page() {
    if (!current_user_can('manage_options')) {
        return;
    }
    echo '<div class="wrap"><h1>Настройки плагина WPKey</h1>';
    echo '<form method="post" action="options.php">';
    settings_fields('wpkey_options_group');
    do_settings_sections('wpkey-settings');
    submit_button();
    echo '</form></div>';
}

Для полноценной работы настроек необходимо зарегистрировать опции и секции через register_setting и add_settings_section. Это позволит сохранять и валидировать данные.

Пример: добавляем простое текстовое поле в настройки

Добавим поле для ввода текста в нашу страницу настроек:

function wpkey_settings_init() {
    register_setting('wpkey_options_group', 'wpkey_text_option');

    add_settings_section(
        'wpkey_section',
        'Основные настройки',
        function() { echo '<p>Настройте параметры плагина ниже.</p>'; },
        'wpkey-settings'
    );

    add_settings_field(
        'wpkey_text_field',
        'Текстовое поле',
        'wpkey_text_field_render',
        'wpkey-settings',
        'wpkey_section'
    );
}
add_action('admin_init', 'wpkey_settings_init');

function wpkey_text_field_render() {
    $value = get_option('wpkey_text_option', '');
    echo '<input type="text" name="wpkey_text_option" value="' . esc_attr($value) . '" />';
}

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

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

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

  • Используйте префиксы для функций и переменных, чтобы избежать конфликтов (например, wpkey_).
  • Обрабатывайте и фильтруйте все входящие данные с помощью функций sanitize_text_field, esc_html и других.
  • Проверяйте права пользователя перед выполнением действий или выводом данных.
  • Используйте nonce для защиты форм от CSRF-атак.

Например, для проверки nonce в форме настроек:

if (isset($_POST['wpkey_nonce_field']) && wp_verify_nonce($_POST['wpkey_nonce_field'], 'wpkey_save_settings')) {
    // Обработка и сохранение данных
}

Подключение скриптов и стилей в плагине WordPress

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

function wpkey_enqueue_scripts() {
    wp_enqueue_style('wpkey-style', plugin_dir_url(__FILE__) . 'assets/css/style.css');
    wp_enqueue_script('wpkey-script', plugin_dir_url(__FILE__) . 'assets/js/script.js', array('jquery'), null, true);
}
add_action('wp_enqueue_scripts', 'wpkey_enqueue_scripts');

function wpkey_admin_enqueue_scripts() {
    wp_enqueue_style('wpkey-admin-style', plugin_dir_url(__FILE__) . 'assets/css/admin-style.css');
}
add_action('admin_enqueue_scripts', 'wpkey_admin_enqueue_scripts');

Это позволит вам контролировать внешний вид и динамику вашего плагина.

Тестирование и отладка плагина

Для успешного запуска плагина важно тщательно тестировать его на разных версиях WordPress и с другими плагинами. Используйте WP_DEBUG для выявления ошибок:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Логи ошибок будут записываться в wp-content/debug.log, что облегчает поиск и исправление проблем.

Заключение

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

WooCommerce: как автоматически отключать неиспользуемые способы оплаты
23.05.2026
Как выполнить проверку безопасности WordPress с помощью PHP и AJAX
19.02.2026
Как работать с настройками в WordPress через PHP
15.12.2025
Как сделать автоматический импорт контента в WordPress
04.01.2026
Как создать автоматическое обновление метаданных в WordPress
30.01.2026

Ресурс в разработке, скоро здесь будет сайт по вордпресс