Подготовка и настройка окружения
Прежде чем начинать писать код, вам понадобится подходящая среда разработки. К ней относятся локальная установка WordPress и кодовый редактор. Для быстрого создания локальной серверной среды рекомендуется использовать такие инструменты, как XAMPP, MAMP, Local by Flywheel или Laragon. Убедитесь, что в вашей среде установлены последние версии PHP (рекомендуется версия 7.4 и выше) и MySQL/MariaDB.
Далее вам необходимо ознакомиться с основной структурой плагинов для WordPress. Основным файлом плагина является главный PHP-файл; его имя и имя каталога могут быть изменены по желанию, однако в этом файле обязательно должна присутствовать специальная заголовочная строка (plugin header), которая информирует систему WordPress о наличии плагина. Этот файл находится в каталоге, где установлен WordPress. wp-content/plugins Создайте новую папку внутри существующей папки. Например: my-first-plugin。
В этой папке создайте свой основной плагин; название файла может быть, например, `main-plugin.js`. my-first-plugin.phpВ начале этого файла должны быть указаны стандартные аннотации с информацией о плагине.
Рекомендуемое чтение Руководство по разработке плагинов для WordPress: Создание вашего первого пользовательского расширения с нуля。
Создайте свой первый файл плагина.
Теперь давайте начнем создавать основную структуру нашего плагина. В каталоге с плагинами откройте главный PHP-файл и внесите следующую стандартную информацию, характерную для заголовочного файла плагина.
<?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. В нем содержатся важные указания, которые помогают системе определить, какие плагины должны быть загружены и активированы.Plugin Name Это обязательное поле; все остальные поля являются необязательными. После сохранения файла вы сможете увидеть этот новый плагин на странице “Плагины” в области управления WordPress и активировать его. В настоящее время у плагина нет никаких функций.
Добавьте к плагину простую функцию.
Одной из самых простых функций является добавление пользовательского меню управления в административную панель веб-сайта. Мы будем использовать для этого соответствующие инструменты и методы разработки. add_action Функция была подключена (монтирована). admin_menu Этот элемент (акционный хук) находится здесь.
В файле основного плагина, после блока комментариев, добавьте следующий код:
// 在管理菜单中添加一个顶级菜单
function mfp_add_admin_menu() {
add_menu_page(
'我的第一个插件设置', // 页面标题
'我的插件', // 菜单标题
'manage_options', // 权限要求
'my-first-plugin', // 菜单 slug
'mfp_settings_page', // 回调函数,用于输出页面内容
'dashicons-admin-generic', // 图标(可选)
6 // 菜单位置(可选)
);
}
add_action('admin_menu', 'mfp_add_admin_menu');
// 定义设置页面的回调函数
function mfp_settings_page() {
?>
<div class="wrap">
<h1><?php echo esc_html(get_admin_page_title()); ?></h1>
<p>Добро пожаловать на страницу настроек моего первого плагина!</p>
<form method="post" action="/ru/options.php/" data-trp-original-action="options.php">
<?php
// 后续可以在这里添加设置字段
?>
<p class="submit">
<input type="submit" name="submit" id="submit" class="button button-primary" value="Сохранить изменения">
</p>
<input type="hidden" name="trp-form-language" value="ru"/></form>
</div>
<?php
} Этот код создает новый верхний меню под названием “Мои плагины”; при нажатии на него открывается простая страница настроек. Для реализации этого использовались соответствующие технологии и инструменты. add_menu_page Была создана функция для регистрации меню, а также определена функция-обратный вызов (callback function). mfp_settings_page Это процесс отображения содержимого страницы на экране.
Рекомендуемое чтение Руководство по разработке плагинов для WordPress: с нуля до создания вашего первого функционального плагина。
Расширение функционала с помощью хуков и фильтров
Сильная сторона ядра WordPress заключается в его архитектуре плагинов, которая реализуется с помощью так называемых хуков действий (action hooks) и хуков фильтров (filter hooks). Хуки действий позволяют выполнять пользовательский код в определенные моменты времени, в то время как хуки фильтров позволяют изменять данные.
Используйте действия-хаки (action hooks) для добавления футнотов на страницу.
Предположим, мы хотим автоматически добавлять определенный текст в конце каждой статьи на сайте. Это можно сделать путем настройки соответствующего механизма внедрения (монтажа) данного текста в структуру сайта. the_content Это реализуется с помощью фильтрующего хука. Обратите внимание: хотя название и звучит как “фильтр”, на самом деле… the_content Обычно используется для изменения содержимого, отображаемого в статьях.
// 在文章内容末尾添加自定义文本
function mfp_append_text_to_content($content) {
// 确保只在主循环的单篇文章页面添加
if (is_single() && in_the_loop() && is_main_query()) {
$custom_text = '<p><em>Эта статья представлена для вас проектом “Мой первый плагин” („My First Plugin“).</em></p>';
$content .= $custom_text;
}
return $content;
}
add_filter('the_content', 'mfp_append_text_to_content'); Эта функция mfp_append_text_to_content Принять исходный текст статьи. $contentПосле проверки контекстных условий (убедившись, что это страница отдельной статьи) добавляется пользовательский текст в конец содержимого, и затем возвращается измененный текст. add_filter Зарегистрируйте его. the_content Крючок.
Создание настраиваемых параметров плагина
Практический плагин обычно требует наличия нескольких параметров, которые можно настроить пользователем. WordPress предоставляет API для безопасной обработки и управления этими параметрами. Мы добавим на предыдущую страницу настроек простое текстовое поле.
Во-первых, нам необходимо зарегистрировать новую настройку и добавить её в существующую страницу меню.
// 初始化插件设置
function mfp_settings_init() {
// 注册一个新的设置到 “reading” 组(或自定义组)
register_setting('mfp_plugin_settings', 'mfp_custom_message');
// 在现有页面内添加一个设置区域
add_settings_section(
'mfp_section_id',
'自定义消息设置',
'mfp_section_callback',
'my-first-plugin'
);
// 向该区域添加一个字段
add_settings_field(
'mfp_field_id',
'页脚消息',
'mfp_field_callback',
'my-first-plugin',
'mfp_section_id'
);
}
add_action('admin_init', 'mfp_settings_init');
// 区域描述回调函数
function mfp_section_callback() {
echo '<p>Здесь вы можете настроить сообщение, которое будет отображаться в конце статьи с помощью плагина.</p>';
}
// 字段输出回调函数
function mfp_field_callback() {
// 从数据库中获取已保存的选项值
$message = get_option('mfp_custom_message', '本文由“我的第一个插件”为您呈现。');
echo '<input type="text" name="mfp_custom_message" value="' . esc_attr($message) . '" class="regular-text">'echo '<p class="description">Введите сообщение, которое вы хотите отображать в конце каждой статьи.</p>';
} Затем необходимо изменить ранее определенные элементы. mfp_settings_page Функция, предназначенная для отображения установленных значений полей в форме.
Рекомендуемое чтение От освоения основ до мастерства: Полное руководство по разработке плагинов для WordPress с практическими примерами。
// 更新后的设置页面回调函数
function mfp_settings_page() {
?>
<div class="wrap">
<h1><?php echo esc_html(get_admin_page_title()); ?></h1>
<form method="post" action="/ru/options.php/" data-trp-original-action="options.php">
<?php
// 输出设置字段、安全随机数和设置组
settings_fields('mfp_plugin_settings');
do_settings_sections('my-first-plugin');
submit_button();
?>
<input type="hidden" name="trp-form-language" value="ru"/></form>
</div>
<?php
} Наконец, необходимо обновить функцию, добавляющую текст ранее, чтобы она использовала настраиваемые параметры.
function mfp_append_text_to_content($content) {
if (is_single() && in_the_loop() && is_main_query()) {
// 从选项中获取自定义消息,如果不存在则使用默认值
$custom_text = get_option('mfp_custom_message', '本文由“我的第一个插件”为您呈现。');
if (!empty($custom_text)) {
$content .= '<p><em>'. wp_kses_post($custom_text) . '</em></p>';
}
}
return $content;
} Интернационализация плагинов и подготовка к их публикации
Для того чтобы плагин мог использоваться пользователями по всему миру, интернационализация является важным шагом. Это подразумевает использование текстовых полей и функций перевода для обработки всех строк, видимых для пользователей.
Используйте функцию перевода для обработки текста.
Вам необходимо обработать все строки, выводимые в плагине (например, тексты, сообщения и т. д.), чтобы выполнить необходимые действия. echo Текст, возвращаемый функцией `or`, необходимо обернуть в специальную функцию перевода. Наиболее часто используемой такой функцией является… () Для перевода и возврата строк, а также… esc_html__() Предназначен для перевода и экранирования HTML-кода (т. е. для сохранения всех его особенностей при отображении на экране).
Измените предыдущий пример кода:
// 在管理菜单中添加一个顶级菜单(国际化版本)
function mfp_add_admin_menu() {
add_menu_page(
__('我的第一个插件设置', 'my-first-plugin'), // 页面标题
__('我的插件', 'my-first-plugin'), // 菜单标题
'manage_options',
'my-first-plugin',
'mfp_settings_page',
'dashicons-admin-generic',
6
);
}
add_action('admin_menu', 'mfp_add_admin_menu');
// 区域描述回调函数(国际化版本)
function mfp_section_callback() {
echo '<p>' . esc_html__('在这里配置插件在文章末尾显示的消息。', 'my-first-plugin') . '</p>';
} Кроме того, необходимо загрузить текстовое поле. После блока комментариев в основном файле плагина добавьте код для загрузки файлов с переводами:
// 加载插件文本域
function mfp_load_textdomain() {
load_plugin_textdomain('my-first-plugin', false, dirname(plugin_basename(__FILE__)) . '/languages/');
}
add_action('plugins_loaded', 'mfp_load_textdomain'); Подготовка архива с сжатыми плагинами
Перед публикацией или распространением плагина необходимо создать чистый пакет для развертывания. Убедитесь, что в каталоге плагина находятся все необходимые файлы, и удалите лишние или ненужные элементы. .git Фолдеры, файлы журналов (логов), конфигурационные файлы IDE и другие несвязанные с функционалом плагина элементы не входят в состав пакета. Обычно минимальный пакет с плагином должен включать в себя следующие элементы:
1. Основной плагин: PHP-файл.
2. Опциональный элемент readme.txt Файл должен соответствовать стандартам формата WordPress.org и использоваться для отображения в каталоге плагинов.
3. Файл, содержащий файлы с переводами. /languages Папка (если таковая имеется).
4. Другие необходимые папки с ресурсами JavaScript, CSS или изображениями.
Сжмите весь папку с плагинами в ZIP-файл. Этот файл можно установить с помощью функции “Загрузить плагин” в интерфейсе WordPress или отправить в официальный каталог плагинов WordPress.
резюме
В этом руководстве мы прошли через основные этапы разработки плагинов для WordPress: от подготовки среды разработки и создания главного файла плагина с стандартными заголовками до добавления функциональности с помощью действий (actions) и фильтров (filters), создания настроек с использованием API, а также получили базовые знания об интернационализации. Это заложило прочную основу для создания более сложных и полезных плагинов. Помните, что хорошая структура кода, соблюдение стандартов кодирования WordPress и глубокое понимание его системы хуков (hooks) являются ключевыми факторами для становления профессиональным разработчиком плагинов.
Часто задаваемые вопросы
Какие программировочные навыки необходимы для разработки плагинов для WordPress под названием ###?
Вам потребуются базовые знания программирования на PHP, поскольку ядро WordPress и его плагины в основном написаны на этом языке. Также будет полезно иметь представление об HTML, CSS и JavaScript, особенно при необходимости настройки пользовательских интерфейсов управления или реализации взаимодействия с пользователем на стороне клиента. Кроме того, важно понимать основные концепции WordPress, такие как статьи, страницы, категории и хаки („hooks“).
Как должно называться основное (главное) файле плагина?
Никаких обязательных требований нет. Основной файл может иметь любое допустимое имя для PHP-файла, однако рекомендуется использовать имя, совпадающее с именем каталога, в котором находится плагин. Например, если имя каталога… my-super-pluginТогда главный файл может называться… my-super-plugin.phpКлючевым моментом являются комментарии о заголовках плагинов, расположенные в начале файла. WordPress использует информацию, содержащуюся в этих комментариях, для работы с плагинами. Plugin Name: Для идентификации плагинов…
Как отладить код моего плагина?
Существует несколько способов отладки плагинов. Во-первых, убедитесь, что у вас… wp-config.php В файле включите режим отладки WordPress. WP_DEBUG Константа установлена на trueЭто позволит отображать на странице ошибки PHP, предупреждения и уведомления. Кроме того, можно использовать… error_log() Функция записывает информацию о дебагировании в ошибочный журнал сервера, либо использует более продвинутые инструменты для дебагирования, такие как плагин Query Monitor, который предоставляет подробную информацию о запросах к базе данных, хэках, ошибках PHP и т. д.
Как можно опубликовать плагин, разработанный мной, в официальном каталоге WordPress?
Чтобы опубликовать плагин в официальном каталоге плагинов WordPress.org, вам сначала необходимо зарегистрировать учетную запись на сайте WordPress.org, а затем представить свой плагин на рассмотрение. Код вашего плагина должен соответствовать лицензии GNU GPL и включать корректно сформатированные файлы. readme.txt Файлы. Команда по рецензированию проверяет качество кода, его безопасность, а также соответствие установленным рекомендациям по структуре каталогов. После успешной проверки вы получите SVN-репозиторий, который будет использоваться для управления и обновления версий вашего плагина.
Что дальше, что дальше?
Расширенное чтение и практические знания
Следующие статьи связаны с темой этой статьи и подходят для дальнейшего углубленного чтения. Зачастую лучше начать с той статьи, которая наиболее близка к вашей текущей проблеме, а затем постепенно переходить к другим темам.
- Как выбрать и настроить идеальную тему для WordPress, подходящую именно вам?
- Руководство по разработке плагинов для WordPress: Создайте свой первый пользовательский плагин с нуля
- Как стать разработчиком плагинов для WordPress: полное руководство от нуля
- От нуля до один: Полное руководство и практические советы по созданию профессиональных сайтов с использованием WordPress
- Полное руководство по разработке плагинов для WordPress: от основ до мастерства создания профессиональных расширений