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

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

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

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

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

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

Минимальный файл плагина должен содержать заголовок, по которому WordPress распознаёт плагин:

<?php
/**
 * Plugin Name: WPGuest Simple Plugin
 * Description: Пример простого плагина с настройками.
 * Version: 1.0
 * Author: WPGuest
 */

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

После создания файла вы сможете активировать плагин в админке WordPress.

Добавление страницы настроек в админку WordPress

Чтобы сделать плагин полезным, добавим страницу настроек. Для этого воспользуемся хуком admin_menu и функцией add_options_page. Ниже пример кода, который добавит пункт меню в раздел «Настройки».

function wpguest_add_settings_page() {
    add_options_page(
        'Настройки WPGuest Simple Plugin', // Заголовок страницы
        'WPGuest Plugin',                 // Название меню
        'manage_options',                 // Права доступа
        'wpguest-simple-plugin',          // Уникальный слаг
        'wpguest_render_settings_page'    // Функция вывода страницы
    );
}
add_action('admin_menu', 'wpguest_add_settings_page');

function wpguest_render_settings_page() {
    ?>
    <div class="wrap">
        <h1>Настройки WPGuest Simple Plugin</h1>
        <form method="post" action="options.php">
            <?php
            settings_fields('wpguest_simple_plugin_options_group');
            do_settings_sections('wpguest-simple-plugin');
            submit_button();
            ?>
        </form>
    </div>
    <?php
}

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

Регистрация настроек и полей формы

Чтобы на странице настроек появились поля для ввода, нужно зарегистрировать настройки и добавить секции и поля. Используем хук admin_init и функции register_setting, add_settings_section, add_settings_field.

function wpguest_register_settings() {
    register_setting('wpguest_simple_plugin_options_group', 'wpguest_simple_plugin_option');

    add_settings_section(
        'wpguest_section_id',
        'Основные настройки',
        'wpguest_section_callback',
        'wpguest-simple-plugin'
    );

    add_settings_field(
        'wpguest_field_id',
        'Введите текст',
        'wpguest_field_callback',
        'wpguest-simple-plugin',
        'wpguest_section_id'
    );
}
add_action('admin_init', 'wpguest_register_settings');

function wpguest_section_callback() {
    echo '<p>Настройте параметры плагина WPGuest.</p>';
}

function wpguest_field_callback() {
    $option = get_option('wpguest_simple_plugin_option');
    echo "<input type='text' name='wpguest_simple_plugin_option' value='" . esc_attr($option) . "' />";
}

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

Использование сохранённых настроек в функционале плагина

Данные, сохранённые в опциях, можно использовать для изменения поведения плагина. Например, выведем сохранённый текст в подвале сайта.

function wpguest_display_text_in_footer() {
    $text = get_option('wpguest_simple_plugin_option');
    if ($text) {
        echo '<div style="text-align:center; padding:10px; background:#f0f0f0;">' . esc_html($text) . '</div>';
    }
}
add_action('wp_footer', 'wpguest_display_text_in_footer');

Так вы увидите, что введённый в настройках текст отображается на всех страницах сайта внизу.

Советы по безопасности и оптимизации плагина

При создании плагинов важно учитывать безопасность. Например, обязательно использовать функции esc_html, esc_attr при выводе данных, чтобы избежать XSS-атак.

Также не забывайте проверять права доступа с помощью current_user_can('manage_options'), если выводите или обрабатываете административные данные.

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

Альтернативные плагины с похожей функциональностью

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

  • Custom Settings Page — простой конструктор страниц настроек.
  • Options Framework — мощный фреймворк для создания панелей настроек.

Однако собственный плагин всегда даёт больше контроля и гибкости.

Как удалить неиспользуемые таблицы в базе данных WordPress для оптимизации
15.12.2025
Как решить ошибку 429 в WooCommerce при автообновлении корзины
22.04.2026
Как автоматизировать управление ролями пользователей в WordPress с помощью кода и плагинов
12.04.2026
Как автоматизировать удаление устаревших transient в WordPress
07.03.2026
Как установить ограничение на размер файлов при загрузке в WordPress
10.01.2026