Управление отображением различных элементов сайта через админ-панель 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 для управления отображением элементов сайта.