Основы разработки плагинов для WordPress и подготовка среды.
Перед тем, как приступить к написанию кода, крайне важно понять основные концепции плагинов WordPress и настроить среду разработки. Плагин WordPress по сути представляет собой набор одного или нескольких PHP-файлов, которые расширяют или изменяют основные функции с помощью системы хуков (hooks), предоставляемой WordPress. Плагины могут быть простыми, например, добавление короткого кода, или сложными, например, создание полноценной системы электронной коммерции.
Основным элементом среды разработки является создание локальной серверной среды. Вы можете быстро настроить локальный сайт WordPress, включающий PHP, MySQL и Apache/Nginx, с помощью таких инструментов, как XAMPP, MAMP, Local by Flywheel или Docker. Убедитесь, что ваша версия PHP соответствует текущей официальной рекомендуемой версии WordPress. Что касается редакторов кода, то Visual Studio Code, PhpStorm или Sublime Text — отличный выбор, поскольку они обеспечивают подсветку синтаксиса, подсказки кода и поддержку отладки, значительно повышая эффективность разработки.
Стандартный плагин WordPress должен содержать по крайней мере один основной PHP-файл, а в заголовке этого файла должны быть указаны определённые сведения о плагине. Эти сведения необходимы для того, чтобы WordPress мог распознать плагин. Кроме того, хотя это и не обязательно, создание отдельной папки для вашего плагина — отличная практика, которая поможет управлять файлами ресурсов, языковыми пакетами и другими зависимостями.
Рекомендуемое чтение От новичка до профессионала в разработке плагинов для WordPress: полное руководство по созданию персонализированного веб-сайта.。
Создайте свой первый файл плагина.
Теперь давайте приступим к созданию основного файла первого плагина. Прежде всего, вам необходимо войти в каталог установки WordPress./wp-content/plugins/Папка. Создайте здесь новую папку для своего плагина; название папки может быть, например, «MyPlugin».my-first-plugin。
В этой папке создайте главный PHP-файл. Обычно этот главный файл имеет то же название, что и папка с плагином, напримерmy-first-plugin.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 в административной панели. После сохранения файла вы сможете увидеть и активировать этот плагин на странице “Плагины” в административной панели WordPress. В настоящее время у него нет никаких функций, но структура уже создана.
Добавьте в плагин простую функцию.
После активации плагина мы добавим к нему первую реальную функцию: отображение строки с пользовательским текстом в нижней части страницы сайта. Для этого мы будем использовать WordPress.wp_footerКрючок.
В главном файле плагина.my-first-plugin.phpНиже комментария в начале файла добавьте следующий код:
Рекомендуемое чтение Изучение разработки плагинов для WordPress с нуля: создание пользовательских функций и расширений.。
// 在网站页脚输出自定义文本
function mfp_add_footer_text() {
echo '<p style="text-align: center; color: #666;">Спасибо, что пользуетесь этим сайтом! Он поддерживается проектом “Мой первый плагин”.</p>'add_action( 'wp_footer', 'mfp_add_footer_text' ); Здесь,mfp_add_footer_textЭто наша пользовательская функция, которая содержит HTML-контент, который необходимо вывести на экран.add_action()Это основная функция для добавления хуков действий, которая “подключает” нашу функцию к ядру WordPress.wp_footerНа этом этапе выполнения задачи. Сохраните файл и обновите главную страницу сайта, и вы увидите эту строку текста внизу страницы.
Используйте шорткоды для расширения возможностей редактирования контента.
Короткие коды (Shortcode) — это мощная функция, предоставляемая WordPress, которая позволяет пользователям вставлять динамический контент в статьи или страницы с помощью простых тегов. Далее мы создадим простой короткий код для отображения текущей даты.
В том же главном файле продолжайте добавлять следующий код:
// 创建一个显示当前日期的短代码
function mfp_show_current_date( $atts ) {
// 定义短码的默认属性
$attributes = shortcode_atts(
array(
'format' => 'Y年m月d日',
),
$atts
);
// 根据属性中的格式返回日期
return date( $attributes['format'] );
}
add_shortcode( 'show_date', 'mfp_show_current_date' ); функцияmfp_show_current_dateОпределено логическое обозначение короткого кода.shortcode_atts()Функция используется для объединения пользовательских атрибутов с атрибутами по умолчанию, обеспечивая надежность кода. Наконец,add_shortcode()Функция будет[show_date]Эта метка связана с нашей пользовательской обработкой событий.
Теперь вы можете вводить текст в любой текстовый редактор статьи, страницы или виджета.[show_date]Отображается дата в стандартном формате, или используется другой формат при необходимости.[show_date format="F j, Y"]Чтобы отобразить дату в английском формате.
Глубокое понимание хуков и фильтров.
Основной философией разработки плагинов для WordPress являются “хуки” (Hooks). Хуки делятся на два типа: действия (Actions) и фильтры (Filters). Те, которые мы использовали ранее, были фильтрами.add_action()Это просто добавление триггера действия.
Рекомендуемое чтение Начнем с нуля: создание вашего первого плагина для WordPress.。
Хуки действий выполняют ваш код в определённые моменты времени. Они не ожидают возврата значения и обычно используются для вывода контента или выполнения определённых задач, например, добавления текста в нижнюю часть страницы. Хуки фильтров предназначены для изменения данных. Они получают значение, обрабатывают его с помощью вашей функции и должны вернуть изменённое значение.
Используйте фильтр для изменения заголовка статьи.
Давайте создадим фильтр, который автоматически добавляет префикс к заголовкам всех статей. Добавьте следующий код в основной файл плагина:
// 使用过滤器为文章标题添加前缀
function mfp_add_title_prefix( $title, $id = null ) {
// 确保只在主循环且是文章页面的标题上生效
if ( in_the_loop() && is_single() && get_post_type( $id ) === 'post' ) {
$title = '【推荐阅读】' . $title;
}
return $title;
}
add_filter( 'the_title', 'mfp_add_title_prefix', 10, 2 ); Здесь,the_titleЭто крючок фильтра.add_filter()Третий параметр “10” является приоритетом (чем меньше число, тем раньше выполняется задача), а четвёртый параметр “2” указывает, что наша обработка принимает два параметра (исходные данные).$title(Идентификатор статьи). Эта функция проверяет условия и добавляет префикс к заголовку только на странице отдельной статьи и только в главном цикле.
Безопасность плагинов и рекомендуемые практики их использования
При разработке плагинов безопасность является главным приоритетом. Никогда нельзя доверять данным, введённым пользователем, они должны быть проверены, очищены и защищены от взлома.
Проверка и эскапирование данных
Когда плагину необходимо обработать данные из формы или URL, он должен использовать безопасные функции, предоставляемые WordPress. Например, использовать функциюsanitize_text_field()Чтобы очистить текстовое ввода, используйтеesc_html()илиesc_attr()Выведите HTML или атрибуты, чтобы предотвратить атаки межсайтового скриптинга (XSS).
Реализовать простую страницу настроек.
Для полноценного плагина обычно требуется страница настроек в административной панели. Здесь мы покажем, как создать простую страницу параметров и безопасно сохранять настройки.
\n// Добавление страницы с параметрами в меню администрирования
function mfp_add_admin_menu() {
add_options_page(
'Настройки моего первого плагина', // Заголовок страницы
'Настройки моего плагина', // Заголовок меню
'manage_options', // Требуемые разрешения
'my-first-plugin', // Слэг меню
'mfp_options_page_html' // Функция для отображения содержимого страницы
);
}
add_action( 'admin_menu', 'mfp_add_admin_menu' );
// Регистрация параметра
function mfp_settings_init() {
register_setting( 'mfpPlugin', 'mfp_settings' ); // Группа настроек, имя параметра
add_settings_section(
'mfp_plugin_section', // Идентификатор раздела
'Базовые настройки', // Заголовок раздела
null, // Функция для описания раздела (здесь пустая)
'my-first-plugin' // Слэг принадлежащей страницы
);
add_settings_field(
'custom_text', // Идентификатор поля
'Пользовательский текст для отображения', // Заголовок поля
'mfp_custom_text_field_html', // Функция для вывода HTML-кода поля
'my-first-plugin', // Слэг принадлежащей страницы
'mfp_plugin_section' // Идентификатор раздела
);
}
add_action( 'admin_init', 'mfp_settings_init' );
// Вывод HTML-кода поля для настроек
function mfp_custom_text_field_html() {
$options = get_option( 'mfp_settings' );
$value = isset( $options['custom_text'] ) ? esc_attr( $options['custom_text'] ) : '';
?>
<input type='text' name='mfp_settings[custom_text]' value='<?php echo $value; ?>'>
<p class="description">Текст, введённый здесь, будет отображаться в нижней части страницы.</p>
<?php
}
// 渲染整个选项页面的HTML
function mfp_options_page_html() {
// 检查用户权限
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
?>
<div class="wrap">
<h1></h1>
<form action="/ru/options.php/" method="post" data-trp-original-action="options.php">
<?php
settings_fields( 'mfpPlugin' ); // 输出安全字段
do_settings_sections( 'my-first-plugin' ); // 输出设置区块和字段
submit_button( '保存设置' );
?>
<input type="hidden" name="trp-form-language" value="ru"/></form>
</div>
<?php
} Этот код создает подстраницу в меню “Настройки”, предназначенную для сохранения пользовательского текста. Обратите внимание на проверку пользовательских прав, которая в нем выполняется.current_user_canи эскапирование выходных данных (esc_html, esc_attrЭто всё часть практик безопасности. После этого вы можете изменить функцию, выводящую предыдущий футер, изменив её так, чтобы она выводила текст, который вы хотите.get_option( 'mfp_settings' )Программа считывает это значение и отображает его динамически.
резюме
Благодаря этому руководству вы полностью освоили процесс создания полнофункционального плагина для WordPress с нуля. Вы узнали, как создать базовую структуру файлов плагина и использовать хуки действий.add_actionДобавьте контент в нижнюю часть страницы, используяadd_shortcodeСоздание пользовательских коротких кодов и использование хуков фильтров.add_filterИзмените данные статьи. Что ещё более важно, вы ознакомились с основными концепциями безопасности плагинов и на практике узнали, как создать безопасную страницу настроек для управления параметрами плагинов.
Разработка плагинов — это процесс постоянного обучения и практики. На следующем этапе вы можете попробовать добавить поддержку интернационализации в плагин (используя__()и_e()Например, вы можете добавить новые функции, импортировать ресурсы JavaScript и CSS или использовать объектно-ориентированное программирование (OOP) для реструктуризации кода, чтобы его было легче обслуживать и расширять. Помните, что чтение официального руководства по плагинам WordPress и изучение основного кода — лучший способ улучшить свои навыки.
Часто задаваемые вопросы
Как отладить мой плагин для WordPress?
Первый шаг — включить режим отладки в WordPress. На веб-сайтеwp-config.phpВ документе будет указано, что...WP_DEBUGКонстанта установлена наtrueЭто позволит напрямую отображать на странице ошибки, предупреждения и уведомления PHP. Для более сложной отладки можно использоватьerror_log()Функция записывает информацию в журнал ошибок сервера или использует специализированные инструменты отладки, такие как Query Monitor, для просмотра запросов к базе данных, выполнения хуков и анализа производительности.
Как мой плагин совместим с различными версиями WordPress?
В коде плагина вы должны использовать условные операторы для проверки наличия основных функций, классов или констант WordPress, а затем использовать их. Для этого можно воспользоваться следующим кодом:function_exists()、class_exists()илиdefined()Выполните оценку. Кроме того, в плагинеreadme.txtВ файле четко указана минимальная версия WordPress, которую поддерживает ваш плагин.Requires at leastЭто поле помогает пользователям понять, насколько устройство совместимо с другими устройствами.
Обязательно ли использовать объектно-ориентированное программирование для разработки плагинов?
Это не обязательно. Вы можете использовать чисто процедурное программирование (как в примерах данного руководства) для разработки полнофункциональных плагинов. Основные преимущества объектно-ориентированного программирования (OOP) заключаются в лучшей организации кода, инкапсуляции и возможности повторного использования, что особенно актуально для крупных и сложных проектов плагинов. Для небольших плагинов процедурное программирование может быть более простым и наглядным. Вы можете выбрать подходящий метод в зависимости от масштаба и сложности проекта.
Как опубликовать мой плагин в официальном каталоге плагинов WordPress?
Прежде всего, вам необходимо зарегистрировать аккаунт на WordPress.org и загрузить плагин. Код вашего плагина должен соответствовать официальным стандартам и руководствам, включая безопасность, отсутствие вредоносного кода, использование лицензии, совместимой с GPL, и т. д. Вам необходимо создать подробное описание вашего плагина.readme.txtПроверьте файлы и убедитесь, что заголовочные комментарии в главном файле плагина соответствуют стандартам. После подачи заявки плагин будет рассмотрен волонтёрами из команды по проверке плагинов, и, если он будет одобрен, его можно будет опубликовать.
Что дальше, что дальше?
Расширенное чтение и практические знания
Следующие статьи связаны с темой этой статьи и подходят для дальнейшего углубленного чтения. Зачастую лучше начать с той статьи, которая наиболее близка к вашей текущей проблеме, а затем постепенно переходить к другим темам.
- Как выбрать и настроить идеальную тему для WordPress, подходящую именно вам?
- Руководство по разработке плагинов для WordPress: Создайте свой первый пользовательский плагин с нуля
- Как стать разработчиком плагинов для WordPress: полное руководство от нуля
- От нуля до один: Полное руководство и практические советы по созданию профессиональных сайтов с использованием WordPress
- Полное руководство по разработке плагинов для WordPress: от основ до мастерства создания профессиональных расширений