Если вы разрабатываете собственный плагин для 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 для добавления, регистрации и отображения настроек, обязательно проверяйте и очищайте вводимые данные. Не бойтесь применять готовые библиотеки, если они подходят для вашего случая.
В результате вы получите удобную панель управления, которая улучшит восприятие вашего плагина и позволит пользователям легко настраивать его под свои задачи.