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

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

Почему важно делать настройки для плагинов

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

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

В WordPress существует стандартизированный способ создания страниц настроек, который мы и рассмотрим.

Обзор API для создания настроек в WordPress

В WordPress для добавления настроек обычно используются функции из следующих групп:

  • add_options_page() — для добавления пункта меню настроек;
  • register_setting() — для регистрации настроек и их сохранения;
  • add_settings_section() и add_settings_field() — для добавления секций и полей на странице настроек;

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

Шаг 1: Добавляем страницу настроек в меню

Для начала создадим функцию, которая добавит пункт меню в админ-панель. В нашем примере название функции будет начинаться с wpassist_ для уникальности.

function wpassist_add_plugin_settings_page() {
    add_options_page(
        'Настройки плагина WPAssist', // Заголовок страницы
        'WPAssist Settings',             // Текст меню
        'manage_options',                // Права доступа
        'wpassist-plugin-settings',     // Уникальный slug страницы
        'wpassist_render_settings_page' // Функция вывода содержимого
    );
}
add_action('admin_menu', 'wpassist_add_plugin_settings_page');

Вызов add_options_page добавляет страницу в меню «Настройки».

Шаг 2: Регистрируем настройки и поля

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

function wpassist_register_settings() {
    register_setting('wpassist_settings_group', 'wpassist_option_text');
    register_setting('wpassist_settings_group', 'wpassist_option_checkbox');

    add_settings_section(
        'wpassist_main_section',
        'Основные настройки',
        'wpassist_main_section_cb',
        'wpassist-plugin-settings'
    );

    add_settings_field(
        'wpassist_option_text',
        'Текстовое поле',
        'wpassist_text_field_cb',
        'wpassist-plugin-settings',
        'wpassist_main_section'
    );

    add_settings_field(
        'wpassist_option_checkbox',
        'Чекбокс',
        'wpassist_checkbox_field_cb',
        'wpassist-plugin-settings',
        'wpassist_main_section'
    );
}
add_action('admin_init', 'wpassist_register_settings');

Здесь мы регистрируем две опции: текстовую и флажок, добавляем одну секцию и два поля.

Колбэк функции для секции

Функция, которая выводит описание секции:

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

Колбэк для текстового поля

Вывод поля ввода текста с сохранённым значением:

function wpassist_text_field_cb() {
    $value = get_option('wpassist_option_text', '');
    echo '<input type="text" name="wpassist_option_text" value="' . esc_attr($value) . '" class="regular-text" />';
}

Колбэк для чекбокса

Вывод чекбокса с сохранённым состоянием:

function wpassist_checkbox_field_cb() {
    $checked = get_option('wpassist_option_checkbox') ? 'checked' : '';
    echo '<input type="checkbox" name="wpassist_option_checkbox" value="1" ' . $checked . ' /> Активировать функцию';
}

Шаг 3: Выводим страницу настроек

Теперь создадим функцию, которая выведет разметку страницы настроек с HTML-формой и кнопкой сохранения.

function wpassist_render_settings_page() {
    ?>
    <div class="wrap">
        <h1>Настройки плагина WPAssist</h1>
        <form method="post" action="options.php">
            <?php
            settings_fields('wpassist_settings_group');
            do_settings_sections('wpassist-plugin-settings');
            submit_button();
            ?>
        </form>
    </div>
    <?php
}

Функция settings_fields выводит скрытые поля для безопасности, do_settings_sections — все добавленные секции и поля, а submit_button — кнопку сохранения.

Дополнительные советы по созданию настроек

Валидация и очистка данных

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

Пример регистрации с валидацией:

register_setting('wpassist_settings_group', 'wpassist_option_text', 'wpassist_validate_text');

function wpassist_validate_text($input) {
    return sanitize_text_field($input);
}

Использование различных типов полей

Помимо текстовых полей и чекбоксов, вы можете добавлять селекты, радио-кнопки, textarea и даже сложные элементы UI с помощью JavaScript. Главное — сохранять данные через register_setting.

Пример использования селекта

function wpassist_register_settings() {
    register_setting('wpassist_settings_group', 'wpassist_option_select');

    add_settings_field(
        'wpassist_option_select',
        'Выбор режима',
        'wpassist_select_field_cb',
        'wpassist-plugin-settings',
        'wpassist_main_section'
    );
}

function wpassist_select_field_cb() {
    $options = array(
        'mode1' => 'Режим 1',
        'mode2' => 'Режим 2',
        'mode3' => 'Режим 3',
    );
    $selected = get_option('wpassist_option_select', 'mode1');
    echo '<select name="wpassist_option_select">';
    foreach ($options as $value => $label) {
        $sel = selected($selected, $value, false);
        echo "<option value=\"$value\" $sel>$label</option>";
    }
    echo '</select>';
}

Полезные плагины для создания настроек

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

  • Settings API — облегчает работу с настройками, предоставляет удобные средства для создания форм;
  • CMB2 — библиотека для создания метабоксов и настроек с богатым набором полей;
  • Redux Framework — мощный фреймворк для создания панелей опций с большим функционалом и UI;

Эти инструменты помогут создать удобный и профессиональный интерфейс без излишних усилий.

Выводы по созданию настроек плагина WordPress

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

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

WooCommerce: автоматическое удаление неактивных заказов по времени
10.05.2026
Как удалить пустые термины в таксономии WordPress с примерами кода
14.02.2026
Как создать динамическую форму в WordPress с помощью AJAX
14.03.2026
Автоматическое удаление неактивных заказов в WooCommerce по времени
30.04.2026
Как настроить автоматическое удаление старого контента в WordPress
02.04.2026