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

|

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

Почему важно создавать собственные страницы настроек

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

Добавление собственных настроек позволяет:

Далее рассмотрим пошаговый процесс создания такой страницы.

Регистрация страницы настроек в админ-панели WordPress

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

Пример кода для регистрации страницы:

function wppremium_add_settings_page() {
    add_options_page(
        'Настройки WPPremium', // Заголовок страницы
        'WPPremium',           // Название меню
        'manage_options',      // Права доступа
        'wppremium-settings',  // Уникальный slug страницы
        'wppremium_render_settings_page' // Функция вывода содержимого
    );
}
add_action('admin_menu', 'wppremium_add_settings_page');

Здесь мы создаём пункт меню с названием «WPPremium», доступный только администраторам (manage_options). Функция wppremium_render_settings_page будет отвечать за вывод формы настроек.

Регистрация и использование опций WordPress

WordPress предлагает API для хранения настроек через функции register_setting(), add_settings_section(), add_settings_field(). Это упрощает создание форм и обработку данных.

Пример регистрации опций:

function wppremium_register_settings() {
    register_setting('wppremium_options_group', 'wppremium_options', 'wppremium_options_validate');

    add_settings_section(
        'wppremium_main_section',
        'Основные настройки',
        'wppremium_section_text',
        'wppremium-settings'
    );

    add_settings_field(
        'wppremium_text_string',
        'Текстовая строка',
        'wppremium_setting_string',
        'wppremium-settings',
        'wppremium_main_section'
    );
}
add_action('admin_init', 'wppremium_register_settings');

Здесь мы регистрируем группу опций wppremium_options, секцию и поле ввода. Функция wppremium_options_validate отвечает за валидацию данных, а wppremium_section_text — за описание секции.

Вывод описания секции

function wppremium_section_text() {
    echo '<p>Здесь вы можете изменить основные параметры плагина WPPremium.</p>';
}

Вывод поля ввода

function wppremium_setting_string() {
    $options = get_option('wppremium_options');
    echo "<input id='wppremium_text_string' name='wppremium_options[text_string]' size='40' type='text' value='" . esc_attr($options['text_string'] ?? '') . "' />";
}

Вывод страницы настроек с формой

Функция, которая выводит страницу настроек, должна содержать HTML-форму с вызовами settings_fields() и do_settings_sections(). Эти функции обеспечивают правильную обработку данных WordPress.

function wppremium_render_settings_page() {
    ?>
    <div class="wrap">
        <h1>Настройки WPPremium</h1>
        <form action="options.php" method="post">
            <?php
            settings_fields('wppremium_options_group');
            do_settings_sections('wppremium-settings');
            submit_button('Сохранить изменения');
            ?>
        </form>
    </div>
    <?php
}

Валидация введённых данных

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

function wppremium_options_validate($input) {
    $new_input = array();
    if (isset($input['text_string'])) {
        $new_input['text_string'] = sanitize_text_field(trim($input['text_string']));
    }
    return $new_input;
}

Примеры полезных расширений

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

add_settings_field(
    'wppremium_checkbox',
    'Включить функцию',
    'wppremium_setting_checkbox',
    'wppremium-settings',
    'wppremium_main_section'
);

function wppremium_setting_checkbox() {
    $options = get_option('wppremium_options');
    $checked = isset($options['checkbox']) && $options['checkbox'] === '1' ? 'checked' : '';
    echo "<input type='checkbox' id='wppremium_checkbox' name='wppremium_options[checkbox]' value='1' $checked />";
}

Не забудьте добавить обработку валидации для чекбокса, чтобы сохранять только 0 или 1.

Рекомендации по безопасности и производительности

При работе с настройками важно учитывать возможности безопасного сохранения и предотвращения XSS-уязвимостей. Всегда используйте функции sanitize_* и esc_* для фильтрации входящих и выводимых данных.

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

Заключение

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

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

Как разрешить или запретить копирование текста в WordPress: практические методы
08.04.2026
WooCommerce: как программно удалять неактивные корзины и заказы
22.05.2026
Как добавить поддержку Gutenberg-блоков в своей теме WordPress
26.01.2026
Как удалить meta tag generator в WordPress: практическое руководство
06.01.2026
Как изменить автозаголовок WordPress динамически на основе контекста
11.02.2026
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее