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

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

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

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

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

Создание вашей первой структуры плагина

Стандартный плагин для WordPress представляет собой папку, содержащую один или несколько PHP-файлов; в корневой директории этой папки должен находиться главный файл плагина. Этот главный файл должен содержать определенную информацию (так называемую «заголовочную информацию плагина»), чтобы система WordPress могла его распознать и правильно управлять им.

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

Создание основного файла плагина

Первое, что вам нужно сделать, — это создать главный файл плагина. Этот файл обычно называется так же, как и сам плагин. Например: my-first-plugin.phpВ начале этого файла необходимо добавить стандартное примечание с информацией о заголовке плагина.

Ультахост (UltaHost) – хостинг-провайдер, предоставляющий услуги хостинга для сайтов, построенных на платформе WordPress.
Гарантия возврата средств в течение 30 дней, неограниченная пропускная способность интернет-канала и объем баз данных, бесплатная защита от DDoS-атак. При покупке на срок 3 лет предоставляется скидка в размере 501 ТБ до 4 ТБ.
<?php
/**
 * Plugin Name:       我的第一个自定义插件
 * Plugin URI:        https://yourwebsite.com/my-first-plugin
 * Description:       这是一个用于学习的 WordPress 自定义插件示例。
 * Version:           1.0.0
 * Author:            你的名字
 * Author URI:        https://yourwebsite.com
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 * Domain Path:       /languages
 */

Этот комментарий является своего рода “идентификационным документом” плагина. В нем содержатся важные сведения о его функционале, структуре и способах использования. Plugin NameИмя плагина является единственным обязательным полем; остальные поля предназначены для предоставления дополнительной информации. Страница “Плагины” в интерфейсе WordPress считывает эту информацию и отображает ее пользователю. После создания файла необходимо поместить его в каталог, в котором находится установленная версия WordPress. /wp-content/plugins/ Файл находится в этом папке. Вы можете создать подпапку с названием “my-first-plugin” и поместить туда главный файл плагина. Затем войдите в область управления WordPress и увидите этот плагин в списке плагинов; вы сможете его активировать. Хотя на данный момент у плагина нет никаких функций, вы уже сделали первый важный шаг на пути к его созданию.

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

По мере увеличения количества функций становится сложно обслуживать весь код, находящийся в одном главном файле. Правильная структура организации файлов крайне важна. Типичный плагин может включать в себя следующие каталоги:
* /includes/Здесь хранятся файлы, содержащие описание основных функций и классов программы.
* /admin/Здесь хранятся файлы, связанные с интерфейсом административного управления в бэкенде.
* /public/Здесь хранятся файлы с фронтенд-функциями, предназначенные для пользователей веб-сайта.
* /assets/Здесь хранятся статические ресурсы, такие как JavaScript-файлы, CSS-код и изображения.
* /languages/: Хранение файлов международного перевода (.po/.mo).

Такая модульная структура не только делает код более понятным, но и облегчает сотрудничество в команде, а также последующее расширение функционала. В основном файле… my-first-plugin.php В этом контексте вы, как правило, используете… require_once Для включения файлов с функциями, находящихся в этих каталогах…

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

Ядро разработки плагинов для WordPress основано на механизме так называемых “хуков” (Hooks). Этот механизм позволяет вашему коду встраиваться в основной процесс выполнения функций WordPress в определенные моменты, что позволяет изменять или добавлять новые функции. Хуки делятся на два типа: действия (Actions) и фильтры (Filters).

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

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

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

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

function myplugin_add_footer_text() {
    echo '<p style="text-align:center;">Спасибо, что используете мой первый плагин!</p>';
}
add_action( 'wp_footer', 'myplugin_add_footer_text' );

Здесь,myplugin_add_footer_text Это функция, которую мы сами определили.add_action() Функция “привязывает” эту функцию к другому объекту или элементу интерфейса. wp_footer Этот механизм запускается автоматически: когда WordPress обрабатывает раздел подвала (footer) страницы, наша функция вызывается в соответствии с заданной схемой.

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

Изменить содержимое с помощью хуков фильтра

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

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

function myplugin_append_to_content( $content ) {
    $custom_text = '<div class="myplugin-note"><p><em>Этот текст отображается с улучшениями, предоставленными моим пользовательским плагином.</em></p></div>';
    // 仅在主循环的单篇文章页面添加
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        return $content . $custom_text;
    }
    return $content;
}
add_filter( 'the_content', 'myplugin_append_to_content' );

функция myplugin_append_to_content Принять исходный материал. $contentМы используем условные проверки, чтобы добавлять текст только в тех местах, где это необходимо, а затем возвращаем измененный контент.add_filter() Функция завершила процесс регистрации.

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

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

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

Добавить меню высшего руководства.

Вы можете добавить новый пункт меню на главном уровне в левой навигационной панели веб-панели WordPress для своего плагина. Для этого выполните следующие шаги: add_menu_page() Функции реализуются специальными программными модулями. Обычно мы… admin_menu Эта функция вызывается внутри данного хака действий (action hook).

Общий хостинг InterServer
Общий хостинг $2.50 USD в месяц, первый месяц $0.1 USD промо-код tryinterserver, 461 скрипт облачных приложений, установка в один клик.
function myplugin_add_admin_menu() {
    add_menu_page(
        '我的插件设置', // 页面标签
        '我的插件',     // 菜单标题
        'manage_options', // 所需权限
        'myplugin-settings', // 菜单 Slug
        'myplugin_settings_page_html', // 显示页面内容的回调函数
        'dashicons-admin-generic', // 图标(可选)
        80 // 菜单位置(可选)
    );
}
add_action( 'admin_menu', 'myplugin_add_admin_menu' );

Создание содержимого страницы настроек

Теперь нам нужно определить упомянутую выше функцию-обратный вызов (callback function). myplugin_settings_page_htmlДля отображения HTML-контента страницы настройок используется соответствующий код. Простая версия такого кода может выглядеть следующим образом:

function myplugin_settings_page_html() {
    // 检查用户权限
    if ( ! current_user_can( 'manage_options' ) ) {
        return;
    }
    ?&gt;
    <div class="wrap">
        <h1></h1>
        <form action="/ru/options.php/" method="post" data-trp-original-action="options.php">
            <?php
            // 输出设置字段和非ce字段
            settings_fields( 'myplugin_options' );
            do_settings_sections( 'myplugin-settings' );
            submit_button( '保存设置' );
            ?>
        <input type="hidden" name="trp-form-language" value="ru"/></form>
    </div>
    &lt;?php
}

Эта функция создает форму, соответствующую стилю интерфейса веб-сервера WordPress. Для полного обработки настроек вам также потребуется использовать другие инструменты или модули. register_setting(), add_settings_section() и add_settings_field() Для определения конкретных параметров настройок используются такие функции, что составляет полноценный рабочий процесс API Settings. Это рекомендуемый способ безопасного хранения и поиска параметров плагинов.

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

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

Создание полей в базе данных и хранение данных

Во-первых, нам необходимо создать место для хранения количества просмотров статьи при её публикации. Обычно для этого используется функция пост-метаданных (post meta) в WordPress. Мы можем воспользоваться ею, чтобы сохранять информацию о количестве просмотров в структуре метаданных статьи. add_post_meta Существуют функции для этого, но более элегантным способом является проверка и обновление этого значения во время просмотра статьи.

function myplugin_track_post_views( $post_id ) {
    if ( ! is_single() ) {
        return;
    }
    if ( empty( $post_id ) ) {
        global $post;
        $post_id = $post->ID;
    }
    // 获取当前浏览次数
    $count = get_post_meta( $post_id, 'myplugin_post_views', true );
    // 如果为空,初始化为0
    $count = $count ? absint( $count ) : 0;
    $count++;
    // 更新数据库
    update_post_meta( $post_id, 'myplugin_post_views', $count );
}
// 在模板重定向时触发,确保只对真实访客计数
add_action( 'template_redirect', 'myplugin_track_post_views' );

Отображение количества просмотров на стороне пользователя (фронтенде).

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

function myplugin_display_post_views_shortcode( $atts ) {
    $atts = shortcode_atts( array(
        'id' =&gt; get_the_ID(),
    ), $atts, 'myplugin_views' );

$post_id = absint( $atts['id'] );
    $views = get_post_meta( $post_id, 'myplugin_post_views', true );
    $views = $views ? $views : 0;

return '<span class="myplugin-view-count">Количество просмотров: ' . esc_html($views) . '</span>'add_shortcode( 'myplugin_views', 'myplugin_display_post_views_shortcode' );

Теперь пользователю достаточно ввести соответствующий код-сокращение в редакторе статей. [myplugin_views]Или вы можете добавить веб-приложение-помощник, предназначенное для работы с “краткими кодами”; введя этот код, вы сможете увидеть количество просмотров статьи на странице. Этот полный пример демонстрирует весь процесс: хранение данных (с использованием специальных механизмов – «хуков»), их извлечение, а также отображение информации на пользовательском интерфейсе (с помощью кратких кодов).

резюме

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

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

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

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

Вам потребуется прочная база знаний PHP, поскольку WordPress и его плагины в основном написаны на этом языке программирования. Также крайне важно иметь базовое понимание HTML, CSS и JavaScript – это позволит вам создавать пользовательские интерфейсы и интерактивные функции. Знание основных концепций MySQL-базы данных также поможет лучше понять, как в WordPress хранится информация.

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

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

Как обеспечить совместимость моего плагина с разными версиями WordPress

Во время разработки необходимо регулярно ознакомляться с официальным руководством по разработке WordPress, чтобы быть в курсе изменений в функциях и хаках (hooks) между различными версиями системы. function_exists() или version_compare() Используйте условные операторы для проверки наличия определенных функций или возможностей, чтобы предложить альтернативные решения, обеспечивающие совместимость с более старыми версиями WordPress. Четко указывайте в описании плагина диапазон версий WordPress, с которыми плагин совместим. Постоянные тестирования в различных средах на нескольких версиях WordPress являются лучшей практикой для обеспечения надежной совместимости.

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

При разработке коммерческих плагинов безопасность, качество кода и пользовательский опыт должны быть на первом месте. Вам необходимо реализовать надежную и безопасную систему авторизации (например, на основе ключей лицензий). Крайне важно предоставлять четкую и своевременную документацию для пользователей, а также техническую поддержку. Обязательно соблюдайте официальные рекомендации WordPress по разработке плагинов и лицензионное соглашение GPL. Рассмотрите возможность использования профессиональных платформ, таких как Freemius или Easy Digital Downloads, для обработки продаж, отправки обновлений и обработки запросов на поддержку.