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

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

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

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

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

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

Структура плагина и создание файлов

Начнем с создания папки плагина в директории wp-content/plugins. Назовем её wproot-greeting. Внутри создадим главный файл wproot-greeting.php с основными заголовками для подключения в WordPress:

<?php
/*
Plugin Name: WProot Greeting
Description: Простой плагин для вывода приветствия с настройками
Version: 1.0
Author: WProot.ru
*/

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

Этот блок необходим, чтобы WordPress распознал плагин и защитил его от запуска вне системы.

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

Для управления параметрами создадим меню в разделе «Настройки» с помощью хука admin_menu и зарегистрируем опции через admin_init:

add_action('admin_menu', 'wproot_add_greeting_menu');
add_action('admin_init', 'wproot_register_greeting_settings');

function wproot_add_greeting_menu() {
    add_options_page(
        'Настройки приветствия',
        'Приветствие WProot',
        'manage_options',
        'wproot-greeting',
        'wproot_greeting_options_page'
    );
}

function wproot_register_greeting_settings() {
    register_setting('wproot_greeting_group', 'wproot_greeting_text');
}

Функция wproot_add_greeting_menu добавляет пункт меню в «Настройки». Опция wproot_greeting_text будет хранить текст приветствия.

Создание формы настроек

Теперь напишем функцию wproot_greeting_options_page, которая выведет страницу с формой для изменения текста приветствия:

function wproot_greeting_options_page() {
    ?>
    <div class="wrap">
        <h1>Настройки приветствия</h1>
        <form method="post" action="options.php">
            <?php
            settings_fields('wproot_greeting_group');
            do_settings_sections('wproot_greeting_group');
            $greeting = esc_attr(get_option('wproot_greeting_text', 'Привет, мир!'));
            ?>
            <table class="form-table">
                <tr valign="top">
                    <th scope="row">Текст приветствия</th>
                    <td>
                        <input type="text" name="wproot_greeting_text" value="<?php echo $greeting; ?>" size="50" />
                    </td>
                </tr>
            </table>
            <?php submit_button(); ?>
        </form>
    </div>
    <?php
}

Эта форма позволяет пользователю ввести любое приветствие и сохранить его в базе.

Вывод приветствия на сайте через шорткод

Для удобства добавим шорткод [wproot_greeting], который можно вставить в записи или страницы для отображения текста приветствия:

add_shortcode('wproot_greeting', 'wproot_display_greeting');

function wproot_display_greeting() {
    $greeting = get_option('wproot_greeting_text', 'Привет, мир!');
    return '<p><strong>' . esc_html($greeting) . '</strong></p>';
}

Теперь в любом месте сайта, где поддерживается шорткод, можно вывести актуальное приветствие.

Расширение плагина: добавление цвета текста приветствия

Чтобы сделать плагин более гибким, добавим настройку цвета текста. Для этого регистрируем новую опцию wproot_greeting_color и добавим поле в форму:

function wproot_register_greeting_settings() {
    register_setting('wproot_greeting_group', 'wproot_greeting_text');
    register_setting('wproot_greeting_group', 'wproot_greeting_color');
}

function wproot_greeting_options_page() {
    $greeting = esc_attr(get_option('wproot_greeting_text', 'Привет, мир!'));
    $color = esc_attr(get_option('wproot_greeting_color', '#000000'));
    ?>
    <div class="wrap">
        <h1>Настройки приветствия</h1>
        <form method="post" action="options.php">
            <?php
            settings_fields('wproot_greeting_group');
            do_settings_sections('wproot_greeting_group');
            ?>
            <table class="form-table">
                <tr valign="top">
                    <th scope="row">Текст приветствия</th>
                    <td>
                        <input type="text" name="wproot_greeting_text" value="<?php echo $greeting; ?>" size="50" />
                    </td>
                </tr>
                <tr valign="top">
                    <th scope="row">Цвет текста</th>
                    <td>
                        <input type="color" name="wproot_greeting_color" value="<?php echo $color; ?>" />
                    </td>
                </tr>
            </table>
            <?php submit_button(); ?>
        </form>
    </div>
    <?php
}

Изменим функцию вывода шорткода, чтобы применять цвет:

function wproot_display_greeting() {
    $greeting = get_option('wproot_greeting_text', 'Привет, мир!');
    $color = get_option('wproot_greeting_color', '#000000');
    return '<p style="color:' . esc_attr($color) . '; font-weight:bold;">' . esc_html($greeting) . '</p>';
}

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

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

  • Используйте функции esc_html и esc_attr для вывода данных, чтобы избежать XSS-уязвимостей.
  • Проверяйте права доступа через current_user_can('manage_options') перед показом настроек.
  • Используйте nonce для подтверждения форм (WordPress добавляет их через settings_fields автоматически).

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

Заключение: практическая польза собственного плагина

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

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

Если хотите, можете скачать исходный код примера с сайта WProot.ru и модифицировать его под свои нужды.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как создать свой плагин WordPress с настройками: пошаговое руководство
05.11.2025
Как удалить неиспользуемые таблицы базы данных WordPress: практическое руководство
06.01.2026
Как удалить редиректы в WordPress без плагинов: практическое руководство
13.11.2025
Как создать выпадающий список с автоподстановкой в WordPress
01.01.2026
Как создать собственный шорткод в WordPress: подробное руководство
17.11.2025
×
-20%
Рождественский
апгрейд начинается *
Воспользоваться скидкой сейчас
* на темы и плагины WordPress