Создание собственного плагина для WordPress — это отличный способ расширить функциональность сайта и получить полный контроль над его возможностями. Особенно полезно уметь создавать плагины с собственной панелью настроек, чтобы другие пользователи могли легко управлять параметрами без правки кода.
Зачем создавать свой плагин WordPress с настройками
Многие начинающие разработчики ограничиваются установкой готовых расширений, но часто возникает необходимость в уникальном функционале, который не реализован в существующих плагинах. Создание своего плагина позволяет:
- Добавить индивидуальные функции, точно соответствующие проекту.
- Обеспечить удобство управления функциями через панель настроек.
- Избежать лишних зависимостей и увеличить скорость работы сайта.
- Повысить безопасность, контролируя весь код.
В этом руководстве на примере мы создадим простой плагин с настройками, который позволит выводить произвольное приветствие на сайте и менять его через админку.
Структура плагина и создание файлов
Начнем с создания папки плагина в директории wp-content/plugins. Назовем её wproot-greeting. Внутри создадим главный файл wproot-greeting.php с основными заголовками для подключения в WordPress:
<?php
/*
Plugin Name: WProot Greeting
Description: Простой плагин для вывода приветствия с настройками
Version: 1.0
Author: WProot.ru
*/
// Защита от прямого вызова
if (!defined('ABSPATH')) exit;
Этот блок необходим, чтобы WordPress распознал плагин и защитил его от запуска вне системы.
Добавление панели настроек в админку WordPress
Для управления параметрами создадим меню в разделе «Настройки» с помощью хука admin_menu и зарегистрируем опции через admin_init:
add_action('admin_menu', 'wproot_add_greeting_menu');
add_action('admin_init', 'wproot_register_greeting_settings');
function wproot_add_greeting_menu() {
add_options_page(
'Настройки приветствия',
'Приветствие WProot',
'manage_options',
'wproot-greeting',
'wproot_greeting_options_page'
);
}
function wproot_register_greeting_settings() {
register_setting('wproot_greeting_group', 'wproot_greeting_text');
}
Функция wproot_add_greeting_menu добавляет пункт меню в «Настройки». Опция wproot_greeting_text будет хранить текст приветствия.
Создание формы настроек
Теперь напишем функцию wproot_greeting_options_page, которая выведет страницу с формой для изменения текста приветствия:
function wproot_greeting_options_page() {
?>
<div class="wrap">
<h1>Настройки приветствия</h1>
<form method="post" action="options.php">
<?php
settings_fields('wproot_greeting_group');
do_settings_sections('wproot_greeting_group');
$greeting = esc_attr(get_option('wproot_greeting_text', 'Привет, мир!'));
?>
<table class="form-table">
<tr valign="top">
<th scope="row">Текст приветствия</th>
<td>
<input type="text" name="wproot_greeting_text" value="<?php echo $greeting; ?>" size="50" />
</td>
</tr>
</table>
<?php submit_button(); ?>
</form>
</div>
<?php
}
Эта форма позволяет пользователю ввести любое приветствие и сохранить его в базе.
Вывод приветствия на сайте через шорткод
Для удобства добавим шорткод [wproot_greeting], который можно вставить в записи или страницы для отображения текста приветствия:
add_shortcode('wproot_greeting', 'wproot_display_greeting');
function wproot_display_greeting() {
$greeting = get_option('wproot_greeting_text', 'Привет, мир!');
return '<p><strong>' . esc_html($greeting) . '</strong></p>';
}
Теперь в любом месте сайта, где поддерживается шорткод, можно вывести актуальное приветствие.
Расширение плагина: добавление цвета текста приветствия
Чтобы сделать плагин более гибким, добавим настройку цвета текста. Для этого регистрируем новую опцию wproot_greeting_color и добавим поле в форму:
function wproot_register_greeting_settings() {
register_setting('wproot_greeting_group', 'wproot_greeting_text');
register_setting('wproot_greeting_group', 'wproot_greeting_color');
}
function wproot_greeting_options_page() {
$greeting = esc_attr(get_option('wproot_greeting_text', 'Привет, мир!'));
$color = esc_attr(get_option('wproot_greeting_color', '#000000'));
?>
<div class="wrap">
<h1>Настройки приветствия</h1>
<form method="post" action="options.php">
<?php
settings_fields('wproot_greeting_group');
do_settings_sections('wproot_greeting_group');
?>
<table class="form-table">
<tr valign="top">
<th scope="row">Текст приветствия</th>
<td>
<input type="text" name="wproot_greeting_text" value="<?php echo $greeting; ?>" size="50" />
</td>
</tr>
<tr valign="top">
<th scope="row">Цвет текста</th>
<td>
<input type="color" name="wproot_greeting_color" value="<?php echo $color; ?>" />
</td>
</tr>
</table>
<?php submit_button(); ?>
</form>
</div>
<?php
}
Изменим функцию вывода шорткода, чтобы применять цвет:
function wproot_display_greeting() {
$greeting = get_option('wproot_greeting_text', 'Привет, мир!');
$color = get_option('wproot_greeting_color', '#000000');
return '<p style="color:' . esc_attr($color) . '; font-weight:bold;">' . esc_html($greeting) . '</p>';
}
Советы по безопасности и производительности плагина
При создании плагина важно соблюдать базовые правила безопасности:
- Используйте функции
esc_htmlиesc_attrдля вывода данных, чтобы избежать XSS-уязвимостей. - Проверяйте права доступа через
current_user_can('manage_options')перед показом настроек. - Используйте
nonceдля подтверждения форм (WordPress добавляет их черезsettings_fieldsавтоматически).
Для повышения производительности не стоит загружать тяжелые библиотеки без необходимости, а код плагина держать компактным и разделять логику по функциям.
Заключение: практическая польза собственного плагина
Создание собственного плагина с настройками — это полезный навык, который пригодится как новичкам, так и опытным разработчикам. Он дает возможность расширять возможности WordPress без ограничения и адаптировать сайт под любые задачи.
Приведенный пример — простой, но легко масштабируемый. Вы можете добавить больше настроек, обработку данных, использовать AJAX, создавать кастомные типы записей и многое другое, используя этот каркас как основу.
Если хотите, можете скачать исходный код примера с сайта WProot.ru и модифицировать его под свои нужды.