Если вы когда-нибудь хотели расширить возможности WordPress, но не находили подходящего плагина, то эта статья для вас. Я покажу, как создать свой собственный плагин на PHP — даже если вы новичок. Вы узнаете, из чего состоит плагин, как подключить его к WordPress и избежать типичных ошибок. Это проще, чем кажется, и я докажу это на примерах.
Что такое плагин и зачем он нужен
Плагин — это как приложение для вашего телефона, только для WordPress. Он добавляет новые функции: от простого счётчика посещений до сложного интернет-магазина. Вместо того чтобы менять ядро WordPress (что опасно и неудобно), вы создаёте отдельный модуль, который можно включить или выключить в любой момент.
Почему это круто? Представьте, что ваш сайт — это дом. WordPress — фундамент и стены. Плагины — это мебель и техника. Вы не перестраиваете дом, чтобы поставить новый холодильник — вы просто подключаете его к розетке. Так и плагин: вы подключаете его к WordPress, и он работает.
Создание собственного плагина даёт вам полный контроль. Вы не зависите от чужого кода, который может сломаться после обновления. И это отличный способ заработать: многие разработчики продают свои плагины на маркетплейсах или предлагают индивидуальные решения клиентам.
Структура плагина: с чего начать
Плагин — это просто папка с PHP-файлами, обычно один главный файл и несколько дополнительных. Всё начинается с главного файла, который содержит шапку с описанием. Эта шапка — обязательна, иначе WordPress не увидит плагин.
Создайте папку, например my-plugin, и внутри — файл my-plugin.php. В начале файла добавьте такой комментарий:
<?php
/**
* Plugin Name: Мой плагин
* Description: Простой плагин для демонстрации.
* Version: 1.0
* Author: Ваше имя
*/
Это как паспорт плагина. WordPress читает эти строки и показывает информацию в админке. Без этого файл не считается плагином.
Теперь добавьте простой код, чтобы плагин что-то делал. Например, выведем сообщение в консоль браузера:
function my_plugin_console_log() {
echo '<script>console.log("Плагин работает!");</script>';
}
add_action('wp_footer', 'my_plugin_console_log');
Здесь мы используем хук wp_footer — это место внизу каждой страницы. Функция добавляет JavaScript-код, который выводит сообщение в консоль. Просто, но наглядно.
Структура плагина может быть разной, но я рекомендую разделять код на файлы: например, includes/ для функций, admin/ для админки, assets/ для стилей и скриптов. Это облегчает поддержку.
Хуки: как WordPress понимает ваш код
Хуки — это, пожалуй, самое важное в разработке плагинов. Они позволяют вашему коду «вклиниваться» в работу WordPress в определённых местах. Есть два типа: действия (actions) и фильтры (filters).
Действия — это события, которые происходят в WordPress: например, загрузка страницы, отправка формы, сохранение записи. Вы можете прикрепить свою функцию к событию с помощью add_action. Фильтры — это функции, которые изменяют данные: например, заменяют текст, добавляют классы к ссылкам.
Рассмотрим пример с фильтром. Допустим, мы хотим изменить текст в подвале сайта:
function my_plugin_footer_text($text) {
$text = 'Текст от моего плагина';
return $text;
}
add_filter('admin_footer_text', 'my_plugin_footer_text');
Здесь admin_footer_text — это фильтр, который управляет текстом в подвале админки. Наша функция получает текущий текст, заменяет его на свой и возвращает. WordPress использует возвращённое значение.
Хуки — это мостик между вашим кодом и ядром. Без них плагины были бы бесполезны, потому что вы не могли бы повлиять на работу WordPress.
Практический пример: плагин для вывода случайной цитаты
Давайте создадим полезный плагин, который выводит случайную цитату в подвале сайта. Это покажет, как работать с данными и хуками.
Сначала добавим массив цитат и функцию для выбора случайной:
function my_plugin_get_random_quote() {
$quotes = array(
'Жизнь — это то, что с тобой происходит, пока ты строишь планы.',
'Успех — это способность идти от неудачи к неудаче, не теряя энтузиазма.',
'Лучший способ предсказать будущее — изобрести его.'
);
$index = array_rand($quotes);
return $quotes[$index];
}
Теперь выведем цитату в подвале. Для этого используем хук wp_footer:
function my_plugin_display_quote() {
$quote = my_plugin_get_random_quote();
echo '<div style="text-align:center; padding:10px;">' . $quote . '</div>';
}
add_action('wp_footer', 'my_plugin_display_quote');
Готово! Теперь при каждом обновлении страницы будет показываться новая цитата. Конечно, это простой пример, но он демонстрирует базовые принципы.
Чтобы плагин был гибче, можно добавить настройки в админку. Например, позволить пользователю вводить свои цитаты. Но это уже тема для отдельной статьи.
Безопасность: защищаем плагин от взлома
Безопасность — это не то, о чём стоит забывать. Плохо написанный плагин может открыть дыру в вашем сайте. Вот несколько правил, которые я всегда соблюдаю.
Проверяйте права доступа. Если ваш плагин выполняет действия в админке, убедитесь, что пользователь имеет соответствующие права. Используйте current_user_can() для проверки.
Экранируйте вывод. Когда вы выводите данные, которые могут содержать HTML или JavaScript, используйте esc_html() или esc_attr(), чтобы предотвратить XSS-атаки.
Проверяйте nonce. Nonce — это одноразовый токен, который защищает от подделки запросов. Добавляйте его в формы и ссылки.
Вот пример безопасной обработки формы:
function my_plugin_save_data() {
if (!current_user_can('manage_options')) {
wp_die('Недостаточно прав');
}
if (!isset($_POST['my_nonce']) || !wp_verify_nonce($_POST['my_nonce'], 'my_action')) {
wp_die('Неверный nonce');
}
$data = sanitize_text_field($_POST['my_data']);
update_option('my_data', $data);
}
add_action('admin_post_my_save', 'my_plugin_save_data');
Здесь мы проверяем права, nonce и очищаем данные перед сохранением. Это базовый минимум, но он уже защищает от многих атак.
mp_ (мой плагин). Это предотвращает конфликты с другими плагинами и темами.
Тестирование и отладка
Прежде чем выпустить плагин в мир, его нужно протестировать. Я рекомендую использовать локальный сервер, например, Local by Flywheel или XAMPP. Это позволяет безопасно экспериментировать, не боясь сломать живой сайт.
Для отладки включите режим отладки в WordPress. В файле wp-config.php добавьте:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
Это запишет все ошибки в файл wp-content/debug.log. Так вы увидите, что именно не работает.
Также полезно использовать инструменты разработчика в браузере. Откройте консоль и смотрите на ошибки JavaScript — они часто указывают на проблемы в коде.
| Инструмент | Назначение |
|---|---|
| XAMPP | Локальный сервер для тестирования |
| WP_DEBUG | Вывод ошибок PHP на экран |
| Chrome DevTools | Отладка JavaScript и CSS |
| Query Monitor | Плагин для анализа запросов к базе данных |
Не забывайте тестировать на разных версиях PHP и WordPress. То, что работает на одной версии, может сломаться на другой.
Что в итоге
Создание плагинов для WordPress — это не магия, а ремесло. Вы изучили основные принципы: структуру плагина, хуки, безопасность и тестирование. Теперь вы можете начать с простого и постепенно усложнять.
Помните: главное — практика. Напишите свой первый плагин, даже если он будет выводить просто «Привет, мир». Потом добавьте настройки, потом интеграцию с API. Каждый шаг делает вас лучше.
Если вы хотите профессиональную разработку, обратитесь в Digital-студию WNDER — мы поможем с любыми задачами.



