Как создать собственный плагин в WordPress

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

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

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

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

Минимальный плагин — это один PHP-файл с специальным заголовком, который WordPress распознает. Создадим файл wp-team-simple-plugin.php в папке wp-content/plugins и добавим в него:

<?php
/*
Plugin Name: WP-Team Simple Plugin
Description: Пример простого плагина для WordPress
Version: 1.0
Author: WP-Team
*/

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

Без этого заголовка WordPress не увидит плагин в админке.

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

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

function wpteam_simple_plugin_current_date() {
    return date('d.m.Y');
}
add_shortcode('current_date', 'wpteam_simple_plugin_current_date');

Теперь в любом месте сайта можно вставить [current_date], и вместо него отобразится текущая дата. Это показывает, как просто добавлять новые возможности.

Как подключить стили и скрипты в плагине

Чтобы ваш плагин выглядел аккуратно и работал динамично, часто нужны CSS и JavaScript. Делается это через хуки WordPress.

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

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

Работа с базой данных и опциями плагина

Часто плагину нужно хранить настройки. WordPress предоставляет удобный API для работы с опциями.

Пример сохранения и получения опции:

function wpteam_simple_plugin_save_option($value) {
    update_option('wpteam_simple_option', sanitize_text_field($value));
}

function wpteam_simple_plugin_get_option() {
    return get_option('wpteam_simple_option', 'значение по умолчанию');
}

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

Создание страницы настроек плагина

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

function wpteam_simple_plugin_add_admin_menu() {
    add_options_page(
        'Настройки WP-Team Simple Plugin',
        'WP-Team Simple',
        'manage_options',
        'wpteam-simple-plugin',
        'wpteam_simple_plugin_options_page'
    );
}
add_action('admin_menu', 'wpteam_simple_plugin_add_admin_menu');

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

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

    $value = wpteam_simple_plugin_get_option();
    echo '<form method="post" action="">';
    echo '<label>Значение опции: </label>';
    echo '<input type="text" name="wpteam_simple_option" value="' . esc_attr($value) . '" />';
    echo '<input type="submit" value="Сохранить" />';
    echo '</form>';
}

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

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

При создании плагина важно соблюдать безопасность. Всегда фильтруйте и экранируйте входящие данные, используйте sanitize_text_field, esc_html и подобные функции.

Не забывайте про проверку прав пользователя через current_user_can и защиту форм с помощью wp_nonce_field.

Также придерживайтесь стандартов кодирования WordPress для удобства поддержки и совместимости.

Пример защиты формы с nonce

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

    if (isset($_POST['wpteam_simple_option']) && check_admin_referer('wpteam_simple_plugin_save', 'wpteam_simple_nonce')) {
        wpteam_simple_plugin_save_option($_POST['wpteam_simple_option']);
        echo '<div class="updated">Настройки сохранены.</div>';
    }

    $value = wpteam_simple_plugin_get_option();
    echo '<form method="post" action="">';
    wp_nonce_field('wpteam_simple_plugin_save', 'wpteam_simple_nonce');
    echo '<label>Значение опции: </label>';
    echo '<input type="text" name="wpteam_simple_option" value="' . esc_attr($value) . '" />';
    echo '<input type="submit" value="Сохранить" />';
    echo '</form>';
}

Как тестировать и отлаживать плагин

Разработка плагина — это цикл тестирования и исправления ошибок. Используйте WP_DEBUG в wp-config.php, логирование через error_log и плагины для отладки, например Query Monitor.

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

Советы по улучшению плагина и публикации

Когда плагин готов, оформите его README с описанием и инструкциями. Если планируете публикацию в репозитории WordPress, изучите требования по безопасности и лицензированию.

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

Как создать динамические виджеты в WordPress с использованием REST API
11.01.2026
Как установить и настроить WPCommunity для создания форума в WordPress
07.01.2026
Удаление всех записей определённой таксономии в WordPress
29.12.2025
Решение проблемы: не работает перехват AJAX запросов в WordPress
07.12.2025
Как создать автоматические отзывы на сайте WordPress с плагином Expert Review
22.12.2025