Практическое руководство для начинающих с нуля: научим вас разрабатывать плагины для WordPress шаг за шагом.

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

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

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

Язык запроса не был указан, поэтому перевод выполнен на русский язык по умолчанию. Если вам нужен перевод на другой язык, пожалуйста, укажите соответствующий параметр./wp-content/plugins/Папка, находящаяся в каталоге. Название этой папки будет служить идентификатором вашего плагина; рекомендуется использовать только маленькие буквы, цифры и дефисы. Внутри этой папки должен находиться главный PHP-файл с тем же именем, что и папка. Например:my-first-plugin.phpЭтот файл является точкой входа для плагина и содержит его метаинформацию.

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

Давайте начнем с создания самого простого плагина, который будет отображать приветственное сообщение в административной панели сайта.

Рекомендуемое чтение Углубленный анализ плагина WooCommerce: полное руководство от базовой настройки до расширенной кастомизации.

Подготовка комментариев в заголовочной части плагина

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

Ультахост (UltaHost) – хостинг-провайдер, предоставляющий услуги хостинга для сайтов, построенных на платформе WordPress.
Гарантия возврата средств в течение 30 дней, неограниченная пропускная способность интернет-канала и объем баз данных, бесплатная защита от DDoS-атак. При покупке на срок 3 лет предоставляется скидка в размере 501 ТБ до 4 ТБ.
<?php
/**
 * Plugin Name: 我的第一个WordPress插件
 * 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
 */

После сохранения файла войдите в панель управления WordPress, перейдите на страницу “Плагины” (Plugins), и там вы увидите плагин “Мой первый WordPress-плагин” в списке доступных плагинов. Теперь вы можете его активировать, хотя он пока не имеет никаких функций.

Для плагина необходимо добавить первую функцию.

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

В главном файле…my-first-plugin.phpНиже комментария в начале файла добавьте следующий код:

// 在管理后台添加一个欢迎提示
function my_first_plugin_admin_notice() {
    ?&gt;
    <div class="notice notice-success is-dismissible">
        <p>Добро пожаловать к использованию плагина “Мой первый WordPress-плагин”! Вы успешно активировали этот плагин.</p>
    </div>
    ';
}
add_action( 'admin_notices', 'my_first_plugin_admin_notice' );

Этот код определяет объект с именем…my_first_plugin_admin_noticeФункция, которая выводит отрывок HTML-кода и формирует окно с уведомлением о успешном выполнении действия (которое можно закрыть).add_action()Функция позволяет “загрузить” эту пользовательскую функцию в систему WordPress.admin_noticesЭта функция активируется после сохранения файла и обновления интерфейса WordPress. Теперь вы увидите зеленое приветственное сообщение в верхней части страницы.

Рекомендуемое чтение Практическое руководство по созданию веб-сайта: полный процесс разработки от нуля до запуска и руководство по выбору технологий.

Понимание основных механизмов работы плагинов WordPress: хуки (hooks) и фильтры (filters)

Суть разработки плагинов для WordPress заключается в взаимодействии с основной частью системы (корнем WordPress), которое осуществляется с помощью механизма “хуков” (hooks). Существует два типа хуков: действия (actions) и фильтры (filters).

Использование действий-хуков (action hooks)

Акционные хаки (action hooks) позволяют вставлять пользовательский код в определенные моменты выполнения WordPress-системы, точно так же, как мы только что это сделали.admin_noticesЕще один распространенный пример…initХук (hook) – это механизм, который запускается при инициализации WordPress и часто используется для регистрации пользовательских типов статей или категорий.

Например, мы можем установить значение опции при инициализации плагина:

hosting.com Общий хостинг
Высокая производительность благодаря процессорам AMD EPYC, SSD-накопителям NVMe и LiteSpeed, круглосуточная экспертная поддержка, передовые меры безопасности, включая SSL, защиту от грубой силы, вредоносных программ и DDoS, экономия до 73%
function my_first_plugin_set_default_option() {
    // 如果选项不存在,则添加它
    if ( false === get_option( 'my_first_plugin_greeting' ) ) {
        add_option( 'my_first_plugin_greeting', 'Hello from my plugin!' );
    }
}
add_action( 'init', 'my_first_plugin_set_default_option' );

Использование фильтров-хуков (filter hooks)

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

function my_first_plugin_add_copyright( $content ) {
    // 仅对主循环中的单篇文章生效
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $copyright = '<p><em>Данная статья защищена авторским правом. При перепечатке необходимо указать источник.</em></p>';
        $content .= $copyright;
    }
    return $content;
}
add_filter( 'the_content', 'my_first_plugin_add_copyright' );

В этом примере функция…my_first_plugin_add_copyrightПринять исходный материал.$contentПосле выполнения условных проверок (чтобы данный код действовал только на странице отдельной статьи) в конец страницы был добавлен отрывок HTML-кода. В конце концов, необходимо обязательно сохранить изменения в исходном коде страницы.$contentВернуться.

Создание более сложных плагинов: использование шорткодов и страниц настроек

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

Рекомендуемое чтение Мощный инструмент для поисковой оптимизации: разработка стратегии SEO для сайта WordPress с нуля.

Создание пользовательских скрытых кодов (shortcodes)

Краткие коды позволяют пользователям использовать простые теги для выполнения различных действий.[my_greeting]Чтобы вставить функции плагинов в статью или страницу, необходимо зарегистрировать соответствующий короткий код для их использования.add_shortcode()Функция.

// 注册一个简单的问候短代码
function my_first_plugin_greeting_shortcode( $atts ) {
    // 使用 shortcode_atts 定义默认属性并合并用户输入
    $attributes = shortcode_atts( array(
        'name' =&gt; '访客',
    ), $atts );

// 获取我们之前设置的选项
    $greeting_text = get_option( 'my_first_plugin_greeting', 'Hello' );

// 生成输出
    $output = '<div class="my-plugin-greeting">';
    $output .= esc_html( $greeting_text ) . ', ' . esc_html( $attributes['name'] ) . '!';
    $output .= '</div>';

return $output;
}
add_shortcode( 'my_greeting', 'my_first_plugin_greeting_shortcode' );

Теперь пользователи могут вводить текст в редакторе.[my_greeting name="张三"]В этом случае на пользовательском интерфейсе будет отображаться текст: “Привет от моего плагина! Здравствуйте, Иван!”.

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

Страница настройок плагина

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

// 在后台“设置”菜单下添加子菜单页
function my_first_plugin_add_settings_page() {
    add_options_page(
        '我的插件设置',          // 页面标题
        '我的第一个插件',        // 菜单标题
        'manage_options',       // 所需权限
        'my-first-plugin',      // 菜单slug
        'my_first_plugin_render_settings_page' // 回调函数,用于输出页面内容
    );
}
add_action( 'admin_menu', 'my_first_plugin_add_settings_page' );

// 渲染设置页面的HTML
function my_first_plugin_render_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1>Настройки моего первого плагина</h1>
        <form method="post" action="/ru/options.php/" data-trp-original-action="options.php">
            <?php
            settings_fields( 'my_first_plugin_settings_group' );
            do_settings_sections( 'my-first-plugin' );
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="ru"/></form>
    </div>
    &lt;?php
}

// 注册设置、区域和字段
function my_first_plugin_register_settings() {
    register_setting(
        &#039;my_first_plugin_settings_group&#039;, // 设置组名
        &#039;my_first_plugin_greeting&#039;        // 选项名
    );

add_settings_section(
        &#039;my_first_plugin_main_section&#039;,    // 区域ID
        &#039;问候语设置&#039;,                     // 区域标题
        null,                            // 区域回调函数(可为空)
        &#039;my-first-plugin&#039;                // 页面slug
    );

add_settings_field(
        &#039;greeting_text_field&#039;,            // 字段ID
        &#039;问候语文本&#039;,                     // 字段标题
        &#039;my_first_plugin_greeting_field_callback&#039;, // 字段HTML的回调函数
        &#039;my-first-plugin&#039;,                // 页面slug
        &#039;my_first_plugin_main_section&#039;    // 所属区域ID
    );
}
add_action( &#039;admin_init&#039;, &#039;my_first_plugin_register_settings&#039; );

// 渲染问候语输入字段
function my_first_plugin_greeting_field_callback() {
    $greeting = get_option( &#039;my_first_plugin_greeting&#039; );
    echo &#039;<input type="text" name="my_first_plugin_greeting" value="' . esc_attr( $greeting ) . '" class="regular-text" />';
}

Этот код создает стандартную страницу настроек для WordPress. Когда пользователь изменяет текст приветствия на этой странице и сохраняет изменения, ранее созданные шорткоды (shortcodes) будут использовать новый текст приветствия.

резюме

В ходе этого учебного курса мы с нуля создали WordPress-плагин с базовыми функциями. Вы узнали, как организовать структуру файлов плагина, как написать информацию, содержащуюся в его заголовочном файле, как использовать хэнги (action hooks) для отправки уведомлений в административной панели, как изменять содержимое страниц с помощью фильтров, как создавать шорткоды для их использования на стороне пользователя, а также как разработать полноценную страницу настроек для управления параметрами плагина. Это самые важные и основные навыки разработки WordPress-плагинов. Овладев этими знаниями, вы сможете изучить официальное руководство по разработке плагинов для WordPress и углубить свои знания API: пользовательские таблицы базы данных, REST API-пункты доступа, обработка AJAX-запросов и т. д., что позволит вам создавать более мощные и профессиональные плагины.

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

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

Для разработки плагинов для WordPress необходимы знания языка PHP, поскольку сама основа WordPress написана на PHP. Кроме того, вам потребуется владение HTML, CSS и базовыми навыками использования JavaScript для создания пользовательского интерфейса плагина и реализации его интерактивных функций. Основное понимание SQL также окажется полезным при работе с более сложными операциями с данными.

Как отладить мой плагин для WordPress?

Во-первых, убедитесь, что у вас…wp-config.phpФайл открыт в приложенииWP_DEBUGЭтот режим позволяет отображать ошибки и предупреждения PHP на экране. Кроме того, с его помощью можно использовать…error_log()Функция записывает информацию о дебагировании в ошибочный журнал сервера. Для более сложного дебагирования можно использовать специализированные инструменты для PHP, такие как Xdebug, или установить дополнительные плагины для дебагирования WordPress, чтобы облегчить выявление ошибок.

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

Вам необходимо зайти на сайт WordPress.org и создать учетную запись разработчика. Затем с помощью инструмента Subversion (SVN) вы должны отправить код своего плагина в официальный репозиторий, предоставленный вам. Ваш плагин должен соответствовать лицензии GPL, а качество кода, уровень безопасности и наличие документации должны соответствовать установленным стандартам проверки. После успешной проверки ваш плагин будет добавлен в официальный каталог, где его смогут скачать пользователи.

Как правильно загружать файлы CSS и JavaScript, используемые в плагинах с точки зрения фронтенда?

Чтобы избежать конфликтов и обеспечить надлежащую производительность, ресурсы не следует включать непосредственно в файлы шаблонов. Правильным способом является их использование через специальные механизмы или инструменты, предназначенные для работы с шаблонами.wp_enqueue_style()иwp_enqueue_script()Функции, относящиеся к ресурсам веб-приложения (в частности, к ресурсам веб-бэкенда), следует разместить (монтировать) в соответствующие места системы.admin_enqueue_scriptsКрючки; для ресурсов веб-сайта, предназначенных для пользователей, они должны быть подключены кwp_enqueue_scriptsКрючки (hooks) позволяют обеспечить корректность зависимостей между компонентами программы и предотвратить многократную загрузку одного и того же файла.