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

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

Почему стоит создавать собственный плагин для WordPress

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

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

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

Основные этапы создания плагина WordPress

Процесс создания плагина можно разделить на несколько ключевых шагов:

  1. Подготовка структуры и файлов плагина.
  2. Добавление основного файла с заголовком и подключением.
  3. Регистрация хуков — действий (actions) и фильтров (filters).
  4. Реализация функционала на PHP, добавление CSS и JS при необходимости.
  5. Тестирование и отладка.

Давайте рассмотрим каждый этап подробнее.

1. Подготовка структуры плагина

Создайте папку для плагина в директории wp-content/plugins. Назовём её wpdemo-sample-plugin. Внутри создайте главный файл wpdemo-sample-plugin.php. В дальнейшем можно добавить поддиректории includes для вспомогательных файлов, assets для скриптов и стилей.

2. Основной файл плагина и заголовок

В начале файла wpdemo-sample-plugin.php обязательно укажите заголовок плагина, чтобы WordPress мог его распознать:

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

// Защита от прямого вызова файла
if (!defined('ABSPATH')) {
    exit;
}

Этот блок является обязательным для регистрации плагина в админке. Также здесь мы добавили проверку defined('ABSPATH') для безопасности.

Регистрация хуков: действия и фильтры

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

Action (действия)

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

function wpdemo_sample_plugin_add_footer_message() {
    echo '<p style="text-align:center; color: #888;">Спасибо, что читаете WPDemo.ru!</p>';
}
add_action('the_content', 'wpdemo_sample_plugin_add_footer_message');

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

Filter (фильтры)

Фильтры позволяют изменить данные перед их выводом. Например, изменим заголовок поста, добавив к нему префикс:

function wpdemo_sample_plugin_filter_title($title) {
    if (is_single()) {
        return 'WPDemo: ' . $title;
    }
    return $title;
}
add_filter('the_title', 'wpdemo_sample_plugin_filter_title');

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

Подключение CSS и JavaScript в плагине

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

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

Создайте в папке плагина папки assets/css и assets/js и поместите туда свои файлы. В данном примере мы подключаем CSS и JS для фронтенда.

Структурирование кода и подключение дополнительных файлов

Для поддержки и масштабирования стоит вынести функционал в отдельные файлы. Например, создайте папку includes и файл functions.php для вспомогательных функций.

require_once plugin_dir_path(__FILE__) . 'includes/functions.php';

Такой подход улучшает читаемость и поддержку кода.

Безопасность и лучшие практики разработки плагина

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

  • Защищайте файлы от прямого доступа (if (!defined('ABSPATH')) exit;).
  • Используйте функции WordPress для обработки данных (например, esc_html(), sanitize_text_field()).
  • Применяйте неповторяющиеся префиксы для функций и переменных, чтобы избежать конфликтов — в нашем случае wpdemo_sample_plugin_.
  • Избегайте использования глобальных переменных.

Также рекомендуется использовать nonce для защиты форм и AJAX-запросов, если вы их реализуете.

Пример простого плагина с настройками

Добавим в плагин страницу настроек в админке, где можно менять текст сообщения в конце записи.

function wpdemo_sample_plugin_add_admin_menu() {
    add_options_page(
        'Настройки WPDemo плагина',
        'WPDemo Plugin',
        'manage_options',
        'wpdemo-sample-plugin',
        'wpdemo_sample_plugin_options_page'
    );
}
add_action('admin_menu', 'wpdemo_sample_plugin_add_admin_menu');

function wpdemo_sample_plugin_settings_init() {
    register_setting('wpdemoSamplePlugin', 'wpdemo_sample_plugin_settings');

    add_settings_section(
        'wpdemo_sample_plugin_section',
        'Основные настройки',
        null,
        'wpdemoSamplePlugin'
    );

    add_settings_field(
        'wpdemo_sample_plugin_text_field',
        'Текст сообщения',
        'wpdemo_sample_plugin_text_field_render',
        'wpdemoSamplePlugin',
        'wpdemo_sample_plugin_section'
    );
}
add_action('admin_init', 'wpdemo_sample_plugin_settings_init');

function wpdemo_sample_plugin_text_field_render() {
    $options = get_option('wpdemo_sample_plugin_settings');
    ?>
    ' style='width: 400px;'>
    
    

Настройки WPDemo плагина

Этот код создаёт страницу настроек в меню «Настройки» с одним полем для изменения текста.

Заключение

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

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

Как добавить свои свойства в метаданные постов WordPress: практические примеры и код
11.11.2025
Как создать свой плагин WordPress — пошаговое руководство
04.11.2025
WP-Cron не работает: как исправить проблему в WordPress
15.11.2025
Оптимизация базы данных WordPress: практические советы и примеры кода
07.11.2025