Руководство для начинающих по разработке плагинов WordPress: создайте свой первый плагин с нуля

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

WordPress является самой популярной системой управления контентом в мире, и его высокая расширяемость во многом обусловлена архитектурой плагинов. Когда становится очевидно, что имеющиеся функции не могут удовлетворить ваши потребности, разработка собственного плагина становится лучшим решением. Это позволяет не только решить конкретные проблемы, но и глубже понять основы работы WordPress. В этом руководстве вы узнаете, как создать свой первый плагин для WordPress – от настройки среды разработки и написания кода до его окончательного публикования.

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

Прежде чем начать писать код, вам понадобится подходящая среда разработки. Она обеспечит эффективность вашего процесса разработки и соответствие лучшим практикам использования WordPress.

Настройка локальной среды разработки

Оптимальным вариантом является создание локальной серверной среды на вашем компьютере. Для этого можно использовать такие инструменты, как XAMPP, MAMP (для Mac), WAMP (для Windows) или более гибкий инструмент Docker. Эти наборы инструментов включают в себя сервер Apache, базу данных MySQL и язык программирования PHP, что позволяет идеально имитировать условия работы WordPress в реальном интернете. После установки локального сервера скачайте последнюю версию WordPress с официального сайта WordPress.org и выполните процедуру настройки в соответствии со стандартным руководством (процесс установки занимает около 5 минут).

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

Кодовые редакторы и необходимые инструменты

Мощный кодовый редактор является неотъемлемой частью разработческого процесса. Visual Studio Code, PhpStorm и Sublime Text — отличные варианты, которые обеспечивают выделение синтаксиса, интеллектуальные советы при написании кода и возможности отладки. Кроме того, вам понадобится система управления версиями, такая как Git, для контроля изменений в вашем коде. Хотя первый плагин может показаться простым в использовании, формирование привычки к работе с системами управления версиями крайне важно для дальнейшей разработки программного обеспечения.

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

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

Каждый плагин для WordPress начинается с основного файла, который содержит заголовочные комментарии, необходимые для того, чтобы WordPress распознал этот плагин.

Структура основного файла плагина

В вашем локальном каталоге установки WordPress перейдите в соответствующую папку.wp-content/pluginsПапка. Создайте здесь новую папку и назовите её…my-first-plugin(Название должно быть кратким и отражать функции плагина.) В этой папке создайте 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
 */

Этот код является своего рода “идентификационным документом” плагина.Plugin NameЭто обязательное поле; оно определяет название плагина, которое будет отображаться в интерфейсе администрирования WordPress. Также рекомендуется заполнить все остальные поля, такие как описание и версия плагина. После сохранения файла перейдите на страницу “Плагины” в административной панели WordPress — там вы должны увидеть свой плагин под названием “Мой первый плагин” в списке плагинов и сможете его активировать. На данный момент у этого плагина нет никаких функций.

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

Добавление базовых функций к плагину

После активации плагина мы добавим к нему две основные функции: возможность вставки пользовательского текста в конец статьи и создание простой страницы управления.

Использование хуков для изменения содержимого статей

Основной механизм WordPress — это так называемые “хаки” (Hooks), которые позволяют вставлять собственный код в определенные моменты работы системы. Действие хаков (Action Hooks) используются для выполнения определенных операций, а фильтрующие хаки (Filter Hooks) — для изменения данных. Нам нужно добавить строку текста в конец содержимого статьи, и для этого потребуются использование хаков.the_contentЭтот фильтрующий хук.
Ниже комментариев в начале вашего основного плагина добавьте следующие функции и хаки:

// 在文章内容末尾添加自定义文本
function myfp_add_footer_text( $content ) {
    // 仅在主循环的单篇文章页面添加
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $custom_text = '<p><em>Спасибо за прочтение! Эта статья была создана с помощью инструмента “Мой первый плагин” („My First Plugin“).</em></p>';
        $content .= $custom_text;
    }
    return $content;
}
// 将函数挂载到‘the_content’过滤器上
add_filter( 'the_content', 'myfp_add_footer_text' );

После сохранения файла обновите страницу статьи на веб-сайте, и вы увидите добавленный текст в нижней части содержимого статьи. В этом коде…myfp_add_footer_textФункция принимает исходные данные (оригинальные значения).$contentПосле проверки условий страницы к её содержимому был добавлен пользовательский текст в виде HTML-параграфа, и в конце был возвращён изменённый вариант страницы.add_filter()Функция позволяет связать нашу пользовательскую функцию с основными фильтрами WordPress.

hosting.com Общий хостинг
Высокая производительность благодаря процессорам AMD EPYC, SSD-накопителям NVMe и LiteSpeed, круглосуточная экспертная поддержка, передовые меры безопасности, включая SSL, защиту от грубой силы, вредоносных программ и DDoS, экономия до 73%

Создание простого меню управления

Далее мы создадим страницу настроек для этого плагина в области управления WordPress. Для этого потребуется использовать действия-хаки (action hooks), чтобы добавить новый пункт в меню администрирования. Добавьте следующий код:

// 在后台管理菜单中添加一个新页面
function myfp_add_admin_menu() {
    add_menu_page(
        '我的第一个插件设置', // 页面标题
        '我的插件',           // 菜单标题
        'manage_options',     // 所需权限
        'my-first-plugin',    // 菜单slug
        'myfp_admin_page_html', // 用于输出页面内容的回调函数
        'dashicons-admin-generic', // 图标(可选)
        100                   // 菜单位置
    );
}
add_action( 'admin_menu', 'myfp_add_admin_menu' );

// 定义管理页面的HTML内容
function myfp_admin_page_html() {
    // 检查用户权限
    if ( ! current_user_can( 'manage_options' ) ) {
        return;
    }
    ?&gt;
    <div class="wrap">
        <h1></h1>
        <p>Добро пожаловать на страницу настроек вашего первого плагина. Это начало нового этапа в разработке ваших проектов!</p>
    </div>
    &lt;?php
}

Сохраните изменения и обновите интерфейс веб-сервера WordPress. В нижней части левой меню вы должны увидеть новый пункт меню под названием “Мои плагины”. Нажмите на него, чтобы перейти на страницу настроек. Здесь вы сможете управлять своими плагинами.add_menu_page()Функция отвечает за регистрацию главной страницы меню.myfp_admin_page_html()Функция отвечает за отображение HTML-контента этой страницы.

Безопасность плагинов и оптимизация кода

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

Рекомендуемое чтение Начнем с нуля: почему стоит выбрать разработку плагинов для WordPress?

Проверка и эскапирование данных

Никогда не доверяйте данным, введенным пользователем, или внешним источникам информации. Перед тем, как отображать любые данные в браузере или сохранять их в базе данных, их необходимо обработать. WordPress предоставляет множество вспомогательных функций для этой цели. Например, при отображении переменных в HTML-атрибутах рекомендуется использовать соответствующие функции, предназначенные для обработки данных перед их вставкой в код.esc_attr()При выводе на HTML-текст используйте следующий формат:esc_html(); при выводе в URL используйтеesc_url()В предыдущем…myfp_admin_page_html()В функции мы использовали…esc_html()Выполните безопасную отображение заголовка страницы.

Использование классов для организации кода

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

Общий хостинг InterServer
Общий хостинг $2.50 USD в месяц, первый месяц $0.1 USD промо-код tryinterserver, 461 скрипт облачных приложений, установка в один клик.
class My_First_Plugin {
    // 构造方法,用于初始化钩子
    public function __construct() {
        add_filter( 'the_content', array( $this, 'add_footer_text' ) );
        add_action( 'admin_menu', array( $this, 'add_admin_menu' ) );
    }

public function add_footer_text( $content ) {
        // ... 函数实现同上 ...
    }

public function add_admin_menu() {
        // ... 函数实现同上 ...
    }

public function admin_page_html() {
        // ... 函数实现同上 ...
    }
}
// 实例化插件类
new My_First_Plugin();

В этом подходе все соответствующие методы и свойства объединены в один объект, что делает структуру более понятной.

резюме

С помощью этого руководства вы выполнили основные шаги создания плагина для WordPress с нуля: настроили среду разработки, создали файл плагина с стандартной структурой, использовали действия (actions) и фильтры (filters) для добавления функциональности к содержимому статей, а также разработали интерфейс управления плагином. Вы также получили представление о важности безопасности и организации кода. Это лишь начало пути: возможности разработки плагинов для WordPress огромны — вы можете изучить такие продвинутые функции, как шорткоды (shortcodes), виджеты (widgets), пользовательские типы статей (custom post types) и REST API-эндпоинты. Помните, что чтение исходного кода, изучение примеров реализации качественных плагинов и ознакомление с официальной документацией для разработчиков являются лучшими способами для постоянного совершенствования своих навыков.

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

Что необходимо знать для разработки плагинов?

Для разработки плагинов для WordPress необходимо овладеть основами языков PHP, HTML, CSS и JavaScript. PHP играет ключевую роль, поскольку сам WordPress написан на этом языке, и именно с его помощью создается логика плагинов. HTML и CSS используются для формирования пользовательского интерфейса, а JavaScript (особенно библиотеки вроде jQuery и современные стандарты ES6+) позволяют улучшить интерактивность и выполнять AJAX-запросы. Также полезно иметь базовые знания MySQL для работы с данными.

Почему мой плагин не отображается в бэкэнде?

Пожалуйста, сначала проверьте следующее: 1. Был ли главный файл плагина размещен вwp-content/pluginsВнутри отдельных папок, находящихся в каталоге. 2. Примечания в начале файла-хоста к плагинам (особенно…)Plugin Name:1. Правильно ли отформатирован файл? 2. Используется ли кодировка UTF-8 без BOM? 3. Есть ли синтаксические ошибки, из-за которых не удается выполнить парсинг в PHP? Можно проверить это в журнале отладки WordPress (для этого необходимо включить отладку в настройках).wp-config.phpВключено.WP_DEBUG)。

Как отладить плагин, не влияя на работу онлайн-сайта?

Настоятельно рекомендуется разрабатывать и тестировать плагины в локальной среде разработки (например, Local by Flywheel, XAMPP) или на отдельном тестовом сервере (Staging Site). Ни в коем случае не следует тестировать не проверенные новые плагины непосредственно на рабочем производственном сайте, где хранятся важные данные. Для управления кодом используйте инструменты контроля версий (например, Git), чтобы в случае возникновения проблем можно было легко вернуться к предыдущей версии программного обеспечения.

Как следует проводить обновление версий плагинов?

Вам следует обновить информацию в комментариях, расположенных в начале основного файла плагина.Version:При проведении крупных обновлений рекомендуется использовать семантическую систему версионирования (SemVer). Например, для исправления ошибок добавляется номер ревизии (например, 1.0.1); для новых функций, совместимых с предыдущими версиями, используется номер подверсии (например, 1.1.0); для несовместимых обновлений используется номер основной версии (например, 2.0.0). Также можно реализовать механизм обнаружения обновлений (например, хранить информацию о плагинах на собственном сервере или в каталоге плагинов WordPress), чтобы пользователи получали уведомления о новых обновлениях в меню системы управления.

Какие требования предъявляются для публикации плагинов в официальный каталог?

Если вы хотите отправить плагин в официальный каталог плагинов WordPress.org, вам необходимо соблюдать следующие основные условия: код плагина должен быть совместим с лицензией GPLv2 или более поздней версии; качество кода должно соответствовать стандартам, установленным WordPress («WordPress Coding Standards»); функции плагина должны быть универсальными и полезными, а не предназначенными исключительно для работы с конкретным сайтом; плагин не должен содержать вредоносного кода или спам-ссылок. Перед отправкой обязательно тщательно ознакомьтесь с подробными руководствами и требованиями, предоставленными в разделе «Разработчик» официального каталога.