Создание собственного плагина для WordPress — важный навык для разработчика, который хочет расширять функционал сайта без зависимости от сторонних решений. В этой статье мы подробно рассмотрим, как создать базовый плагин, его структуру, подключение хуков и безопасность. Также приведём примеры кода, которые помогут быстро начать разработку.
Что такое плагин WordPress и зачем создавать свой
Плагин — это самостоятельный модуль, который расширяет возможности WordPress. С помощью плагинов можно добавить новые функции, интегрироваться с внешними сервисами, улучшить интерфейс и многое другое. Создание собственного плагина полезно, если вы хотите:
- Реализовать уникальный функционал, которого нет в готовых решениях.
- Избежать зависимости от сторонних разработчиков.
- Оптимизировать и кастомизировать сайт под свои нужды.
Понимание структуры и механизма работы плагинов позволит вам создавать качественные, безопасные и легко поддерживаемые решения.
Структура базового плагина WordPress
Минимальный плагин — это один PHP-файл с заголовком, который содержит метаданные. Для удобства разработки лучше создавать отдельную папку в директории wp-content/plugins, где будут храниться все файлы плагина.
Пример структуры:
wptem-my-plugin/
wptem-my-plugin.php
readme.txt
assets/
css/
js/
В основном файле плагина — wptem-my-plugin.php — обязательно должен быть заголовок, по которому WordPress распознаёт плагин:
<?php
/**
* Plugin Name: WPTem My Plugin
* Plugin URI: https://wptem.ru
* Description: Пример собственного плагина для WordPress.
* Version: 1.0
* Author: WPTem
* Author URI: https://wptem.ru
* License: GPL2
*/
// Защита от прямого запуска
if (!defined('ABSPATH')) {
exit;
}
Этот блок — обязательный минимум для регистрации плагина в системе.
Подключение хуков и создание функций плагина
Самая важная часть плагина — регистрация действий и фильтров через хуки WordPress. Это позволяет внедрять ваш код в жизненный цикл сайта.
Например, добавим простое сообщение в админ-панель WordPress:
function wptem_my_plugin_admin_notice() {
echo '<div class="notice notice-success is-dismissible"><p>Плагин WPTem успешно активирован!</p></div>';
}
add_action('admin_notices', 'wptem_my_plugin_admin_notice');
Этот код добавляет уведомление на все страницы админки. Такой подход можно использовать для вывода сообщений, предупреждений или информации.
Создание страницы настроек плагина (админ-меню)
Чтобы пользователь мог конфигурировать плагин, создадим собственную страницу настроек в админке.
function wptem_my_plugin_add_admin_menu() {
add_menu_page(
'WPTem Plugin Settings',
'WPTem Plugin',
'manage_options',
'wptem-my-plugin',
'wptem_my_plugin_settings_page',
'dashicons-admin-generic',
81
);
}
add_action('admin_menu', 'wptem_my_plugin_add_admin_menu');
function wptem_my_plugin_settings_page() {
if (!current_user_can('manage_options')) {
return;
}
if (isset($_POST['wptem_my_plugin_option'])) {
update_option('wptem_my_plugin_option', sanitize_text_field($_POST['wptem_my_plugin_option']));
echo '<div class="updated notice"><p>Настройки сохранены.</p></div>';
}
$value = get_option('wptem_my_plugin_option', '');
?>
<div class="wrap">
<h1>Настройки плагина WPTem</h1>
<form method="post" action="">
<label for="wptem_my_plugin_option">Введите значение:</label><br>
<input type="text" id="wptem_my_plugin_option" name="wptem_my_plugin_option" value="<?php echo esc_attr($value); ?>" /><br><br>
<input type="submit" value="Сохранить" class="button button-primary" />
</form>
</div>
<?php
}
Этот пример создаёт в меню отдельный пункт «WPTem Plugin», где можно сохранить простое текстовое значение в базу данных.
Безопасность и стандарты разработки плагинов
При создании плагина важно соблюдать основные правила безопасности:
- Защищать файлы от прямого доступа с помощью проверки
defined('ABSPATH'). - Использовать функции очистки и валидации данных —
sanitize_text_field(),esc_html(),esc_attr()и др. - Ограничивать доступ к административным функциям — проверять права пользователя (
current_user_can()). - Использовать неповторяющиеся префиксы для функций, чтобы избежать конфликтов с другими плагинами.
Соблюдение этих правил гарантирует, что ваш плагин будет работать стабильно и безопасно.
Пример расширения: подключение CSS и JS в плагине
Чтобы добавить стили и скрипты, используйте хуки wp_enqueue_scripts для фронтенда и admin_enqueue_scripts для админки.
function wptem_my_plugin_enqueue_scripts() {
wp_enqueue_style('wptem-my-plugin-style', plugins_url('assets/css/style.css', __FILE__));
wp_enqueue_script('wptem-my-plugin-script', plugins_url('assets/js/script.js', __FILE__), array('jquery'), null, true);
}
add_action('wp_enqueue_scripts', 'wptem_my_plugin_enqueue_scripts');
function wptem_my_plugin_admin_enqueue_scripts() {
wp_enqueue_style('wptem-my-plugin-admin-style', plugins_url('assets/css/admin-style.css', __FILE__));
}
add_action('admin_enqueue_scripts', 'wptem_my_plugin_admin_enqueue_scripts');
Создайте соответствующие файлы style.css, script.js в папке assets, чтобы подключить необходимые стили и логику.
Полезные плагины и инструменты для разработки
Для разработки плагинов советую использовать следующие инструменты:
- Query Monitor — для отладки запросов, хуков и ошибок.
- Debug Bar — для быстрой проверки состояния WordPress.
- Plugin Boilerplate — шаблон для создания плагина с соблюдением стандартов.
- PHP CodeSniffer с WordPress Coding Standards — для проверки соответствия кода стандартам WP.
Использование этих инструментов значительно ускорит и упростит процесс разработки.
Заключение: первые шаги к созданию собственного плагина на WPTem
Создание плагина — это не только возможность расширить функционал сайта, но и важный шаг в освоении WordPress как платформы. Начните с простого плагина, изучайте хуки, настраивайте админку, и со временем вы сможете создавать мощные и сложные решения.
Если вы хотите, чтобы мы подготовили для вас примеры более сложных плагинов или разбор конкретных задач — пишите на wptem.ru!