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

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

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

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

  • предоставить простой интерфейс для включения/отключения элементов;
  • собрать несколько опций в одном месте для удобства;
  • организовать пользовательские настройки, не затрагивая базовые опции темы;
  • сделать настройки доступными только администраторам или определённым ролям.

Это повышает удобство работы с сайтом и снижает риск случайных ошибок при правке кода.

Пошаговое создание страницы настроек в админ-панели

Регистрация страницы настроек с помощью admin_menu

Для начала нужно добавить новую страницу в меню админ-панели. Это делается через хук admin_menu. Пример функции с префиксом adminwpstuff_:

function adminwpstuff_register_settings_page() {
    add_menu_page(
        'Настройки отображения', // Заголовок страницы
        'Отображение',           // Текст меню
        'manage_options',         // Уровень доступа
        'adminwpstuff_display_settings', // slug страницы
        'adminwpstuff_render_settings_page', // Callback для вывода контента
        'dashicons-admin-generic',
        60
    );
}
add_action('admin_menu', 'adminwpstuff_register_settings_page');

Здесь мы создаём пункт меню с иконкой и привязываем функцию, которая выведет содержимое страницы настроек.

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

Теперь создадим форму настроек с одним примером опции — переключателем для отображения приветственного баннера на главной. Для сохранения настроек используем API WordPress Options.

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

    // Обработка сохранения формы
    if (isset($_POST['adminwpstuff_settings_nonce']) && 
        wp_verify_nonce($_POST['adminwpstuff_settings_nonce'], 'adminwpstuff_save_settings')) {
        $show_banner = isset($_POST['show_banner']) ? 1 : 0;
        update_option('adminwpstuff_show_banner', $show_banner);
        echo '<div class="updated notice"><p>Настройки сохранены.</p></div>';
    }

    $show_banner = get_option('adminwpstuff_show_banner', 0);
    ?>
    <div class="wrap">
        <h1>Настройки отображения</h1>
        <form method="post" action="">
            <input type="hidden" name="adminwpstuff_settings_nonce" value="<?php echo wp_create_nonce('adminwpstuff_save_settings'); ?>" />
            <table class="form-table">
                <tr valign="top">
                    <th scope="row">Показывать приветственный баннер</th>
                    <td><input type="checkbox" name="show_banner" value="1" <?php checked(1, $show_banner); ?> /></td>
                </tr>
            </table>
            <input type="submit" class="button-primary" value="Сохранить" />
        </form>
    </div>
    <?php
}

Так мы создаём простой интерфейс с безопасной обработкой данных и сохранением параметра в базу.

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

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

if (get_option('adminwpstuff_show_banner', 0)) {
    echo '<div class="welcome-banner">Добро пожаловать на сайт!</div>';
}

Таким образом, пользователь из админки сможет включать и отключать баннер без вмешательства в код.

Пример расширения: управление несколькими элементами

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

Рекомендации по улучшению и плагинам для расширения функционала

Если вы хотите использовать готовые решения, рекомендуем обратить внимание на плагин Clearfy Pro. Он позволяет оптимизировать админ-панель и добавлять дополнительные удобные настройки.

Для реализации сложных интерфейсов управления отображением можно использовать WPRemark — плагин для создания собственных мета-данных и настроек с удобным UI.

Выводы и советы по безопасности

Создавая свои настройки, обязательно используйте nonce-поля для защиты от CSRF, проверяйте права доступа с помощью current_user_can и валидируйте данные перед сохранением. Это не только обезопасит ваш сайт, но и поможет избежать конфликтов и ошибок.

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

Как отключить автоматическое удаление корзины в WooCommerce
24.05.2026
Как создать собственный админ-бар в WordPress
04.01.2026
Удаление старых вариаций товаров из базы WooCommerce без плагинов
14.06.2026
Как удалить старые чанк-данные из базы данных WordPress без плагинов
12.02.2026
Как создать настройку в админ-панели WordPress для управления отображением
30.03.2026