Основи розробки плагінів для WordPress та підготовка середовища роботи
Перш ніж почати писати код, дуже важливо зрозуміти основні концепції WordPress-плагінів та налаштувати середовище розробки. WordPress-плагін по суті є набором одного або кількох PHP-файлів, які розширюють або змінюють функціонал основної системи за допомогою системи хуків (Hooks), наданої WordPress. Плагіни можуть бути дуже простими – наприклад, просто містити короткий фрагмент коду – або дуже складними – наприклад, включати в себе повну систему електронної комерції.
Ядро розробчого середовища – це створення локального серверного середовища. Ви можете використовувати такі інструменти, як XAMPP, MAMP, Local by Flywheel чи Docker, щоб швидко налаштувати локальний сайт WordPress із підтримкою PHP, MySQL, Apache чи Nginx. Обов’язково переконайтеся, що версія PHP, яку ви використовуєте, відповідає офіційним рекомендаціям від WordPress. Щодо програм для редагування коду, Visual Studio Code,PhpStorm та Sublime Text є відмінними варіантами; вони забезпечують підсвічування синтаксису, підказки під час редагування коду та можливості налагодження, що значно підвищує ефективність розробки.
Стандартний плагін для WordPress має містити принаймні один основний PHP-файл, а в заголовку цього файлу повинні бути присутні певні коментарі з інформацією про плагін. Ці коментарі є ключовими для того, щоб WordPress міг правильно ідентифікувати плагін. Крім того, хоча це і не є обов’язковим, створення окремого каталогу для вашого плагіна є дуже хорошою практикою – це допомагає краще організувати файли ресурсів, мовні пакети та інші залежності.
Рекомендуємо до прочитання. Розробка плагінів для WordPress від початківця до майстра: повний посібник з створення персоналізованих веб-сайтів。
Створіть свій перший файл плагіна.
Тепер давайте розпочнемо створення основного файлу нашого першого плагіна. Спочатку вам потрібно увійти до каталогу, де знаходиться встановлений WordPress./wp-content/plugins/Папка. Створіть тут нову папку для свого плагіна; наприклад, назвіть її…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;">Дякуємо, що використовуєте наш веб-сайт! Підтримку надає проект “Мій перший плагін” („My First Plugin“).</p>';
}
add_action( 'wp_footer', 'mfp_add_footer_text' ); Тут,mfp_add_footer_textЦе наша власна функція, яка містить HTML-контент, який потрібно вивести.add_action()Це основна функція, яка використовується для додавання “хвостиків дій” (action hooks). Вона дозволяє „під’єднати“ нашу власну функцію до ядра системи 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。
Функціональні хвилі (action hooks) виконують ваш код у певний момент часу; вони не очікують повернення значень та зазвичай використовуються для виведення інформації чи виконання певних завдань (наприклад, додавання тексту у футер). Фільтрувальні хвилі (filter hooks), навпаки, призначені для модифікації даних. Вони приймають певне значення, яке після обробки вашою функцією має бути повернене у вигляд
Використовуйте фільтри для зміни заголовків статей.
Створімо фільтр, який автоматично додасть певний префікс до всіх заголовків статей. Додайте цей код у основний файл плагіна:
// 使用过滤器为文章标题添加前缀
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Це фільтр-хук (filter hook).add_filter()Третій параметр “10” визначає пріоритет виконання (чим менший чисельний значення, тим раніше функція виконується); четвертий параметр “2” означає, що наша оброблювальна функція приймає два аргументи (оригінальні дані).$titleФункція перевіряє певні умови та додає префікс до заголовка лише на сторінці окремої статті, коли виконується основний цикл обробки даних.
Безпека плагінів та найкращі практики їх використання
Під час розробки плагінів безпека є найважливішим фактором. Ніколи не довіряйте даним, введеним користувачем; їх необхідно перевіряти, очищати та обробляти відповідним чином (наприклад, за допомогою механізмів еск
Проверка даних та їх ескапування
Коли плагін потребує обробляти дані, отримані з форм або URL-адрес, необхідно використовувати безпечні функції, які надає WordPress. Наприклад, можна скористатися…sanitize_text_field()Використовуйте цей інструмент для очищення введеного тексту.esc_html()或esc_attr()Використовуйте HTML-теги та атрибути для запобігання атакам типу XSS (Cross-Site Scripting).
Створіть просту сторінку налаштувань.
Повноцінний плагін зазвичай потребує сторінки налаштувань у бекенді. Тут демонструється, як створити просту сторінку з параметрами та безпечно зберегти один із параметрів налаштувань.
// 在后台管理菜单中添加一个选项页面
function mfp_add_admin_menu() {
add_options_page(
'我的第一个插件设置', // 页面标题
'我的插件设置', // 菜单标题
'manage_options', // 权限要求
'my-first-plugin', // 菜单slug
'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', // 区块ID
'基础设置', // 区块标题
null, // 区块介绍的回调函数(此处为null)
'my-first-plugin' // 所属页面slug
);
add_settings_field(
'custom_text', // 字段ID
'自定义显示文本', // 字段标签
'mfp_custom_text_field_html', // 用于输出字段HTML的回调函数
'my-first-plugin', // 页面slug
'mfp_plugin_section' // 所属区块ID
);
}
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><p><strong> <p><strong></h1>
<form action="/uk/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="uk"/></form>
</div>
<?php
} Цей код створює підсторінку, яка розташована у меню “Налаштування” та призначена для зберігання користувацького тексту. У коді також передбачений контроль прав користувача.current_user_canЕскапування вхідних даних та ескапування вихідних данихesc_html, esc_attrЦе все є частиною правил безпеки. Після цього ви можете змінити функцію, яка виводиться у футерному розділі попередньої сторінки.get_option( 'mfp_settings' )Це значення зчитується з файлу, щоб його можна було відобразити динамічно.
підсумок
За допомогою цього посібника ви повністю пройшли процес створення функціонального WordPress-плагіна з нуля. Ви дізналися, як створювати базову структуру файлів плагіна та як використовувати систему дій (action hooks).add_actionЩоб додати вміст у футер, виконайте наступні кроки:add_shortcodeСтворення власних скорочених кодів та використання фільтрів-хуківadd_filterЗмінити дані статті. Що ще важливіше, ви ознайомилися з основними концепціями безпеки плагінів та практично навчилися створювати безпечні сторінки налаштувань для керування параметрами плагінів.
Розробка плагінів – це процес постійного навчання та практики. Наступним кроком може бути додавання підтримки інтернаціоналізації до вашого плагіна (за допомогою відповідних інструментів чи методик).__()和_e()Використовуйте функції, що надаються WordPress, інтегруйте ресурси JavaScript та CSS, або застосовуйте об’єктно-орієнтоване програмування (OOP) для реконструкції структури коду, щоб зробити її більш зручною для обслуговування та розширення. Пам’ятайте, що читання офіційних посібників до плагінів та коду самого WordPress є найкращим способом покращити свої навички.
Часті запитання
Як налаштувати та виправити помилки у своєму плагіні для WordPress?
Першим кроком є увімкнення режиму налагодження (debugging mode) у 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: від початківців до майстрів – створення професійних розширень