Руководство по разработке плагинов для WordPress: Создание вашего первого пользовательского плагина с нуля

2 минуты чтения
2026-03-12
2026-06-03
2,208
Я получаю комиссионные, когда вы совершаете покупки по ссылкам ниже, без дополнительных затрат для вас.

Подготовка среды для разработки плагинов для WordPress

Прежде чем начинать писать код, вам понадобится подходящая локальная среда разработки. Категорически не рекомендуется разрабатывать плагины непосредственно на производственных серверах в сети. Типичная среда разработки для WordPress включает в себя программное обеспечение для локального сервера (например, XAMPP, MAMP, Local by Flywheel или Docker), текстовый редактор (например, VS Code, PHPStorm) и полностью новую установку WordPress.

Вам необходимо убедиться, что версия PHP, используемая на вашем сайте, соответствует требованиям выбранной версии WordPress. Как правило, основная часть WordPress совместима с несколькими версиями PHP. Для разработки плагинов рекомендуется использовать PHP 7.4 или более новые версии, поскольку они предоставляют более современные синтаксис и функциональные возможности. Кроме того, вам следует включить необходимые настройки в интерфейсе WordPress.WP_DEBUGРежим работы программы может помочь вам быстро выявлять ошибки в процессе разработки.wp-config.phpВ файле найдите и установите следующие константы:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

При такой настройке информация об ошибках будет записываться в…/wp-content/debug.logФайлы должны храниться внутри системы, а не отображаться непосредственно на странице, поскольку это не влияет на пользовательский опыт на стороне клиента (фронтенде). Такой подход считается наилучшей практикой.

Рекомендуемое чтение От нуля к одному: Полное руководство по разработке плагинов для WordPress с практическими примерами

Создайте свой первый файл плагина.

Все плагины для WordPress хранятся в определенном месте (обычно в папке с именем `plugins` в корневом каталоге сайта)./wp-content/plugins/Каталог уже существует. Каждый плагин обычно хранится в отдельной папке, и название этой папки должно быть лаконичным и отражать функции плагина. Теперь давайте создадим первый плагин.

Ультахост (UltaHost) – хостинг-провайдер, предоставляющий услуги хостинга для сайтов, построенных на платформе WordPress.
Гарантия возврата средств в течение 30 дней, неограниченная пропускная способность интернет-канала и объем баз данных, бесплатная защита от DDoS-атак. При покупке на срок 3 лет предоставляется скидка в размере 501 ТБ до 4 ТБ.

Написание основного файла плагина

В вашем папке с плагинами необходимо создать основной PHP-файл. Название этого файла обычно совпадает с названием папки. Например:my-first-plugin.phpЭтот файл является входным пунктом для плагина; в нем обязательно должна содержаться специальная заголовочная строка (аннотация плагина). WordPress с помощью этих метаданных отображает ваш плагин на странице управления плагинами в бэкенде.

<?php
/**
 * Plugin Name:       我的第一个定制插件
 * Plugin URI:        https://example.com/my-first-plugin
 * Description:       这是一个学习WordPress插件开发的入门示例插件。
 * Version:           1.0.0
 * Author:            你的名字
 * Author URI:        https://example.com
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 * Domain Path:       /languages
 */

После сохранения этого файла вы сможете увидеть его на странице “Плагины” в области управления WordPress. Теперь вы можете его активировать. Хотя у него пока нет никаких функций, это важный этап на пути к его полноценному использованию. В заголовочном файле плагина…Text DomainиDomain PathПредназначено для использования в процессах интернационализации и локализации, а также для подготовки к будущему выпуску плагинов.

Основная безопасность и структура плагинов

Безопасность является главным приоритетом при разработке плагинов. Одним из основных способов защиты является предотвращение прямого доступа к файлам плагина. Мы можем реализовать это, добавив проверку прямого доступа в начало файлов. Измените ваш главный файл и вставьте следующий код после комментариев, расположенных в начале кода плагина:

// 防止直接文件访问
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

Этот код проверяет значения констант.ABSPATHОпределяется, был ли файл PHP определён как доступный для прямого доступа по URL. Если нет (что означает, что кто-то пытался получить доступ к этому файлу напрямую через URL), выполнение скрипта прекращается. Это важная мера безопасности, которая должна быть предусмотрена во всех качественных плагинах для WordPress.

Рекомендуемое чтение Полное руководство по разработке плагинов для WordPress: практическое руководство с нуля до публикации в Интернете

Добавить основные функции в плагин

Роль плагинов заключается в расширении возможностей WordPress. Давайте на простых примерах узнаем, как добавлять новые функции: создание страницы для управления и вставка контента на пользовательском интерфейсе.

Добавьте простой меню управления.

Во-первых, мы изучим, как добавить страницу меню, относящуюся к нашему плагину, в интерфейс администратора на стороне сервера. Для этого потребуется использовать систему “хуков” (Hooks) в WordPress.admin_menuАкционные хаки (Action Hooks).

Мы добавляем функцию в основной файл плагина. Например…mfp_add_admin_menuЗатем используйте…add_actionФункция осуществляет её монтирование (то есть присоединяет к нужному объекту или системному компоненту).admin_menuНа крючке.

hosting.com Общий хостинг
Высокая производительность благодаря процессорам AMD EPYC, SSD-накопителям NVMe и LiteSpeed, круглосуточная экспертная поддержка, передовые меры безопасности, включая SSL, защиту от грубой силы, вредоносных программ и DDoS, экономия до 73%
function mfp_add_admin_menu() {
    add_menu_page(
        '我的插件设置',          // 页面标题
        '我的插件',             // 菜单标题
        'manage_options',       // 权限要求
        'my-first-plugin',      // 菜单Slug
        'mfp_admin_page_html',  // 用于渲染页面内容的回调函数
        'dashicons-admin-generic', // 图标(使用Dashicons)
        30                      // 菜单位置
    );
}
add_action( 'admin_menu', 'mfp_add_admin_menu' );

Далее нам необходимо определить обратные вызовы (callback functions), использованные выше.mfp_admin_page_htmlВы хотите, чтобы я вывел содержимое HTML-страницы на экран. Вот самый простой пример:

function mfp_admin_page_html() {
    // 再次检查用户权限
    if ( ! current_user_can( 'manage_options' ) ) {
        return;
    }
    ?&gt;
    <div class="wrap">
        <h1></h1>
        <p>Здравствуйте, мир! Это моя первая страница для управления плагинами.</p>
    </div>
    &lt;?php
}

Теперь обновите свой бэкенд WordPress, и вы должны увидеть в левой навигационной панели новый пункт меню под названием “Мои плагины”.

Добавьте текст в нижнюю часть веб-страницы на стороне клиента (фронтенде).

Помимо работы с бэкендом, нам чаще всего приходится вносить изменения в фронтенд. Например, нам нужно добавить информацию об авторских правах в нижней части всех статей и страниц. На этот раз мы используем…the_contentФильтровые хаки (filter hooks).

Рекомендуемое чтение Руководство по разработке плагинов для WordPress: Создание вашего первого функционального расширения с нуля

Фильтровые хуки (Filter Hooks) позволяют изменять данные, передаваемые функциям. Мы создадим такую функцию.mfp_add_footer_textЭтот инструмент принимает содержимое статьи в качестве параметра и добавляет к нему наш собственный текст.

function mfp_add_footer_text( $content ) {
    // 仅对主循环中的单篇文章和页面生效
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $footer_text = '<p><em>Данная статья была поддержана моим первым плагином.</em></p>';
        $content .= $footer_text;
    }
    return $content;
}
add_filter( 'the_content', 'mfp_add_footer_text' );

Этот код сначала проверяет, является ли текущая среда одной статьей или страницей, а также находится ли программа в основном цикле обработки данных, чтобы избежать повторного добавления текста в других местах (например, в виджетах или резюме). Затем он добавляет HTML-пассаж, содержащий информацию об авторских правах, в конец исходного текста и возвращает результат обработки.

Общий хостинг InterServer
Общий хостинг $2.50 USD в месяц, первый месяц $0.1 USD промо-код tryinterserver, 461 скрипт облачных приложений, установка в один клик.

Продвинутые практики разработки плагинов

Ознакомившись с основами, изучение некоторых продвинутых практик позволит сделать ваш плагин более профессиональным и надежным в использовании.

Реализация настраиваемых параметров плагинов

Зрелый плагин обычно предоставляет пользователю возможность настроек. WordPress предлагает API для настроек, который упрощает процесс создания страниц с параметрами. Этот процесс включает регистрацию параметров, добавление полей для настроек и их разделение на группы. Хотя это и сложнее, чем простое добавление страниц с меню, такой подход автоматически обеспечивает безопасность (например, проверку значений типа Nonce) и сохранение данных, введенных пользователем в формах.

Обычно мы храним параметры плагинов в виде массива в базе данных WordPress.wp_optionsВ таблице. Вы можете использовать это.add_option()get_option()иupdate_option()Функции предназначены для работы с данными вашего плагина.

Используйте классы для организации кода плагинов.

По мере увеличения количества функций плагина размещение всех этих функций в глобальном пространстве имен может привести к конфликтам имен функций. Лучшей практикой является использование PHP-классов для инкапсуляции функций плагина. Это не только позволяет лучше организовать код, но и позволяет воспользоваться объектно-ориентированными возможностями, такими как автоматическое загружение компонентов, использование пространств имен (если вы используете PHP 5.3 и выше) и улучшенная защита кода от внешних вмешательств.

Основной файл плагина, основанного на классах, может выглядеть примерно так:

if ( ! defined( 'ABSPATH' ) ) exit;

class My_First_Plugin {
    public function __construct() {
        // 在构造函数中挂载所有钩子
        add_action( 'admin_menu', array( $this, 'add_admin_menu' ) );
        add_filter( 'the_content', array( $this, 'add_footer_text' ) );
    }

public function add_admin_menu() { /* ... */ }
    public function add_footer_text( $content ) { /* ... */ }
}

// 初始化插件
new My_First_Plugin();

Такой подход позволяет собрать все связанные методы в одном классе, что значительно повышает удобство обслуживания кода (то есть его поддержки и модификаций в будущем).

резюме

Этот руководство помогло вам полностью освоить процесс создания пользовательского плагина для WordPress с нуля. Вы узнали, как настроить среду разработки, создать безопасную структуру файлов плагина, использовать хэнги действий (actions) и хэнги фильтров (filters) для расширения функционала как на стороне сервера, так и на стороне пользовательского интерфейса, а также познакомились с передовыми практиками программирования, такими как объектно-ориентированный подход и использование API. Суть разработки плагинов заключается в понимании системы хэнгов WordPress – она предоставляет множество возможностей для внесения изменений в поведение платформы без необходимости модификации её основного кода. Постоянная практика, начиная с написания простых функций и постепенного развития более сложных плагинов, является лучшим способом освоения этого навыка.

Часто задаваемые вопросы

Какие знания PHP необходимы для разработки плагина ###?
Вам необходимо овладеть основами синтаксиса PHP, включая работы с переменными, массивами, функциями, условными операторами и циклами. Ещё важнее понимание способов взаимодействия с API WordPress, например, использования хуков (hooks).add_action, add_filterИспользование распространенных функций WordPress также играет важную роль. Знания объектно-ориентированного программирования (ООП) оказываются крайне полезными при разработке сложных плагинов.

如何调试自己开发的插件?

ВключитьWP_DEBUGШаг формирования правильной модели является крайне важным. Посмотрите на это.wp-content/debug.logЭто ошибочный журнал из файла. Кроме того, вы можете использовать его в своем коде.var_dump()илиerror_log()Функция выводит информацию для отладки. Например,error_log( print_r( $variable, true ) );Содержимое любой переменной можно записать в файл debug.log. Использование профессиональных отладочных инструментов, таких как Query Monitor, также значительно повышает эффективность работы с программой.

Могу ли я использовать сторонние PHP-библиотеки в плагинах?

Можно, но необходимо подходить к этому с осторожностью. Чтобы избежать конфликтов версий с библиотеками, используемыми другими плагинами или темами, рекомендуется использовать инструмент управления зависимостями PHP – Composer, а также его функцию автоматической загрузки. При пакетировании и публикации плагина вы можете либо включить файлы библиотеки в состав своего плагина (обязательно соблюдая условия лицензии библиотеки), либо попросить пользователей установить эти зависимости самостоятельно на сервере.

Как опубликовать плагин в официальный каталог WordPress после его разработки?

Вам необходимо зайти на сайт WordPress.org и отправить свой плагин на проверку. Код вашего плагина должен соответствовать официальным стандартам и рекомендациям по кодированию: обеспечивать безопасность, поддерживать международность (использовать международные языки и символы) и соблюдать другие требования, установленные командой разработчиков WordPress.__()и_e()Функция содержит подробное описание своего поведения (включая все возможные варианты выполнения), а также подробные инструкции по использованию.readme.txtПосле одобрения ваш плагин станет доступен для поиска и установки пользователями по всему миру.