Как создать настройку в админ-панели 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 без плагинов
14.06.2026
Как удалить все мета данные из WordPress без плагинов
17.12.2025
Как создать собственный визуальный редактор блоков Gutenberg в WordPress
16.04.2026
Как использовать хук WooCommerce Subscription Renewal для дополнительных действий
24.07.2026
Как создать настройку в админ-панели WordPress для управления отображением
30.03.2026