Создание собственного плагина — важный этап в освоении WordPress, позволяющий реализовать уникальный функционал, который не доступен через стандартные плагины. В этой статье мы разберем поэтапно, как написать плагин с нуля, какие основные файлы и функции он должен содержать, и как добавить в него настройки и действия.
Основные составляющие плагина WordPress: структура и минимальный набор файлов
Плагин — это набор PHP-файлов, которые WordPress загружает и выполняет для расширения своих возможностей. Минимально для работы плагина нужен один PHP-файл с правильно оформленным «заголовком» плагина.
Структура плагина обычно выглядит так:
my-wprus-plugin/— корневая папка плагина;my-wprus-plugin/my-wprus-plugin.php— главный PHP-файл плагина;- Дополнительно: папки
includes/,assets/для скриптов, стилей и вспомогательных файлов; - Опционально:
readme.txtи другие файлы документации.
Ниже пример минимального заголовка плагина, который должен быть в начале главного PHP-файла:
<?php
/*
Plugin Name: WP RUS Custom Plugin
Plugin URI: https://wprus.ru
Description: Пример простого плагина, созданного с нуля
Version: 1.0
Author: Ваша Имя
Author URI: https://wprus.ru
License: GPL2
*/
Этот блок позволяет WordPress идентифицировать плагин в админке.
Регистрация хуков и создание функционала плагина
Плагины работают, подключаясь к хукам (actions и filters) WordPress. В этом примере создадим функцию, которая добавляет сообщение в подвал сайта.
Добавим в файл my-wprus-plugin.php следующий код:
function wprus_footer_message() {
echo '<p style="text-align:center; font-size:14px; color:#666;">Плагин WP RUS: Спасибо, что посетили наш сайт!</p>';
}
add_action('wp_footer', 'wprus_footer_message');
Функция wprus_footer_message выводит HTML-сообщение в подвал сайта, используя хук wp_footer. Такой подход позволяет внедрять код в разные части темы без изменения её файлов.
Создание шорткода для вывода информации
Шорткоды — это удобный способ вставлять динамический контент в записи и страницы. Добавим простой шорткод для вывода текущей даты.
function wprus_current_date_shortcode() {
return '<strong>' . date('d.m.Y') . '</strong>';
}
add_shortcode('wprus_date', 'wprus_current_date_shortcode');
Теперь в любом посте можно вставить [wprus_date], и он заменится на текущую дату.
Добавление страницы настроек в админку WordPress
Многие плагины имеют собственные настройки. Создадим простую страницу настроек, где можно будет задать текст для вывода в подвал сайта.
Регистрация страницы меню
function wprus_add_admin_menu() {
add_options_page(
'Настройки WP RUS Плагина',
'WP RUS Настройки',
'manage_options',
'wprus_plugin',
'wprus_options_page'
);
}
add_action('admin_menu', 'wprus_add_admin_menu');
Создание формы настроек
function wprus_settings_init() {
register_setting('wprusPluginSettings', 'wprus_footer_text');
add_settings_section(
'wprus_section',
'Основные настройки',
null,
'wprusPluginSettings'
);
add_settings_field(
'wprus_footer_text_field',
'Текст в подвале сайта',
'wprus_footer_text_render',
'wprusPluginSettings',
'wprus_section'
);
}
add_action('admin_init', 'wprus_settings_init');
function wprus_footer_text_render() {
$option = get_option('wprus_footer_text', 'Спасибо за посещение!');
echo '<input type="text" name="wprus_footer_text" value="' . esc_attr($option) . '" style="width:300px;">';
}
Вывод страницы настроек
function wprus_options_page() {
?>
<form action="options.php" method="post">
<h2>Настройки WP RUS Плагина</h2>
<?php
settings_fields('wprusPluginSettings');
do_settings_sections('wprusPluginSettings');
submit_button();
?>
</form>
<?php
}
Использование настроек в коде плагина
Обновим функцию вывода в подвал, чтобы использовать значение из настроек:
function wprus_footer_message() {
$text = get_option('wprus_footer_text', 'Спасибо за посещение!');
echo '<p style="text-align:center; font-size:14px; color:#666;">' . esc_html($text) . '</p>';
}
Советы по безопасности и производительности плагина
При разработке плагина важно учитывать безопасность. Всегда экранируйте вывод с помощью esc_html или других функций WordPress, чтобы предотвратить XSS-атаки.
При работе с пользовательскими данными используйте функции проверки и валидации. Для AJAX-запросов — nonce и проверки прав доступа.
Для производительности старайтесь минимизировать количество запросов к базе, кешировать результаты и освобождать ресурсы.
Заключение: что сделано и как использовать
Мы создали простой, но полнофункциональный плагин, который умеет выводить текст в подвал сайта, имеет настраиваемый параметр через админку и шорткод для вывода текущей даты. Этот базовый пример можно расширять для решения конкретных задач.
Для установки плагина достаточно:
- Создать папку
my-wprus-pluginвwp-content/plugins/. - Создать файл
my-wprus-plugin.phpс кодом из примеров. - Активировать плагин в админке WordPress.
- Настроить текст в разделе «Настройки» → «WP RUS Настройки».
Такой подход поможет вам легко создавать свои решения и углубленно работать с WordPress.