Підготовчі роботи перед розробкою
Перш ніж приступати до написання коду, нам потрібно переконатися, що середовище розробки правильно налаштоване, та зрозуміти основну структуру плагінів для WordPress. Підходяще локальне середовище розробки є основою для ефективної роботи.
Налаштування локального середовища для розробки.
По-перше, вам знадобиться локальне серверне середовище для запуску WordPress. Рекомендується використовувати такі інтегровані інструменти, як XAMPP, MAMP або Local by Flywheel. Після встановлення WordPress ви зможете… wp-content/plugins Розпочніть розробку свого плагіна у цьому каталозі. Цей каталог призначений для зберігання усіх плагінів – як тих, які ви самі розробили, так і тих, які ви встановили з офіційного дистрибутиву.
Розуміння основних файлів плагіна
Кожен плагін для WordPress потребує принаймні одного головного файлу, який є “паспортом” та “запускним механізмом” плагіна. Цей файл зазвичай називається відповідно до функцій плагіна. my-first-plugin.phpБлок коментарів на початку цього головного файлу має вирішальне значення, адже він надає системі WordPress основну інформацію про цей плагін.
Рекомендуємо до прочитання. Розробка плагінів для WordPress: від початківця до майстра: покрокова інструкція щодо створення вашого першого власного плагіна。
Створіть свій перший файл плагіна.
Тепер давайте почнемо з найбазовіших етапів та створимо простий плагін із реальною функціональністю.
Написати коментарі до заголовного файлу плагіна
在 wp-content/plugins У каталозі створіть файл під назвою my-first-plugin Створіть нову папку. Потім у цій папці створіть головний файл. my-first-plugin.phpУ верхній частині цього файлу вам потрібно додати заголовкові коментарі з інформацією про плагін, які відповідають стандартам WordPress.
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://yourwebsite.com/my-first-plugin
* Description: 这是一个用于学习的简单插件,用于在文章末尾添加自定义文本。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://yourwebsite.com
* License: GPL v2 or later
* Text Domain: my-first-plugin
*/ Цей код повідомляє WordPress, що це плагін, та визначає інформацію про нього, яка відображається на сторінці адміністративного інтерфейсу: назву, опис, версію тощо. Після збереження файлу увійдіть у адміністративну панель WordPress, перейдіть на сторінку “Плагіни” – ваш плагін має з’явитися у списку. Тепер ви можете його активувати, хоча наразі він не має жодних функцій.
Реалізація базової функції: фільтрація контенту статей
Після активації плагіна нам потрібно, щоб він виконав певну функцію. Однією з поширених базових можливостей є зміна змісту статей. Ми будемо цим користуватися. the_content Цей фільтр-хук автоматично додає у кінець кожної статті власний текст.
У головному файлі my-first-plugin.php Під заголовковими коментарями ми додаємо код функцій:
Рекомендуємо до прочитання. Як створити професійний тематичний дизайн для WordPress: повний посібник від початку до запуску。
// 在文章内容末尾添加自定义文本
function myfp_add_custom_text_to_content( $content ) {
// 确保只在主循环的单篇文章页面添加
if ( is_single() && in_the_loop() && is_main_query() ) {
$custom_text = '<p><strong>Дякуємо за читання! Ця стаття підтримується проектом “Мій перший плагін” („My First Plugin“).</strong></p>';
$content .= $custom_text;
}
return $content;
}
// 将我们的函数挂载到 ‘the_content’ 过滤器上
add_filter( 'the_content', 'myfp_add_custom_text_to_content' ); Цей код визначає об’єкт під назвою… myfp_add_custom_text_to_content Функція приймає вхідні дані у вигляді тексту статті. $content Як параметр, за допомогою умовного перевірення переконуємося, що текст додається лише на сторінці окремої статті на фронтенд-частині веб-сайту, щоб уникнути його відображення на інших сторінках (наприклад, на сторінках зі списком статей). Потім вставляється власний HTML-фрагмент після оригінального контенту, і повертається оновлений варіант сторінки. Нарешті, цей процес викону add_filter() Функція “монтує” цю власну функцію в ядро WordPress. the_content Фільтр розташований на відповідному місці. Таким чином, щоразу, коли WordPress готується вивести вміст статті, спочатку виконується наша функція.
Після збереження файлу перейдіть на головну сторінку веб-сайту та перегляньте будь-яку статтю. Ви побачите, що у нижній частині сторінки з’явився текст подяки, який ми додали.
Додати опції керування для плагіна
Функціональний плагін зазвичай потребує певних налаштувальних параметрів, які дозволяють користувачам вносити зміни у налаштування в режимі роботи системи. Ми додамо сторінку налаштувань для щойно створеної функції “Користувацький
Створити меню для керування плагінами
Спочатку нам потрібно додати новий пункт меню до бічної панелі керування в WordPress. Для цього потрібно скористатися можливостями, які надає сам WordPress. add_action() Функції та… admin_menu Хук.
// 添加管理菜单
function myfp_add_admin_menu() {
add_options_page(
'我的第一个插件设置', // 页面标题
'我的插件设置', // 菜单标题
'manage_options', // 权限要求
'my-first-plugin', // 菜单 slug
'myfp_options_page_html' // 显示设置页面的回调函数
);
}
add_action( ‘admin_menu’, ‘myfp_add_admin_menu’ ); add_options_page() Функція створить підменю під головним меню “Налаштування”. Їй потрібно кілька параметрів: заголовок сторінки, заголовок меню, права користувача, унікальний ідентифікатор меню (slug), а також ім’я функції-коректора, яка відповідає за виведення HTML-контенту сторінки налаштувань. myfp_options_page_html。
Створення сторінки налаштувань та збереження даних
Далі нам потрібно визначити функцію-повернення (callback function), яка буде відповідальна за рендеринг сторінки налаштувань та обробку даних, надісланих користувачем.
Рекомендуємо до прочитання. Посібник з розробки плагінів для WordPress: створіть свій перший плагін з нуля。
// 渲染设置页面的HTML
function myfp_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( ‘myfp_settings’ );
// 输出设置区域
do_settings_sections( ‘my-first-plugin’ );
// 输出提交按钮
submit_button( ‘保存设置’ );
?>
<input type="hidden" name="trp-form-language" value="uk"/></form>
</div>
‘myfp_field_custom_text’ ]
);
}
add_action( ‘admin_init’, ‘myfp_settings_init’ );
// 渲染文本框的HTML
function myfp_field_custom_text_html() {
// 从数据库获取已保存的值
$options = get_option( ‘myfp_options’ );
$value = $options[‘myfp_field_custom_text’] ?? ‘’; // 使用空合并运算符,如果不存在则赋空值
?>
<input type="“text”"
id="“myfp_field_custom_text”"
name="“myfp_options[myfp_field_custom_text]”"
value="“NO NUMERIC NOISE KEY" 1000”
class="“regular-text”">
<?php
} Цей код виконує register_setting、add_settings_section 和 add_settings_field Серія функцій була використана для створення сторінки налаштувань, яка містила текстове поле для введення даних, відповідно до стандартів API налаштувань WordPress. Введені користувачем дані безпечно зберігаються. wp_options таблиці даних myfp_options Записано.
Наостанок нам потрібно змінити функцію, яка раніше фільтрувала вміст статей, щоб вона використовувала текст, отриманий з бази даних, а не жорстко закодований текст.
function myfp_add_custom_text_to_content( $content ) {
if ( is_single() && in_the_loop() && is_main_query() ) {
$options = get_option( ‘myfp_options’ );
$custom_text = $options[‘myfp_field_custom_text’] ?? ‘’;
if ( ! empty( $custom_text ) ) {
$content .= ‘<p><strong>’. esc_html($custom_text)‘.‘</strong></p>’;
}
}
return $content;
} Тепер користувачі можуть ввести будь-який текст на сторінці “Налаштування” -> “Налаштування моїх плагінів”. Після збереження цей текст буде відображатися в кінці кожної статті на сайті.
Продвинуті практики розробки плагінів та підготовка до їх публікації
Після завершення розробки базових функцій нам потрібно подумати про надійність та зручність обслуговування плагінів, а також про те, як їх можна буде поширити серед інших користувачів.
Додати підтримку безпеки та інтернаціоналізації
Безпека є найважливішим аспектом розробки плагінів. У наведеному вище прикладі ми вже використовували заходи забезпечення безпеки. esc_html() 和 esc_attr() Використовуйте відповідні функції WordPress для ескапулювання даних, щоб запобігти атакам типу XSS. Під час обробки користувацьких вводів, виконання запитів до баз даних чи завантаження зовнішніх файлів завжди слід застосовувати функції безпеки, які надає сам WordPress. wpdb->prepare()、sanitize_text_field() 和 check_admin_referer() Тощо.
Крім того, щоб плагін був доступний для користувачів по всьому світу, необхідно забезпечити його інтернаціоналізацію (i18n). Усі текстові елементи, призначені для користувачів, у плагіні потрібно обгорнути функціями перекладу WordPress. Для цього доведеться змінити наш попередній код.
1. Це вже зазначено у коментарях на початку плагіна. Text Domain: my-first-plugin。
2. Завантаження текстового поля. Зазвичай це робиться в кінці головного файлу:add_action( ‘plugins_loaded’, function() { load_plugin_textdomain( ‘my-first-plugin’, false, dirname( plugin_basename( FILE ) ) . ‘/languages/’ ); } );。
3. Рядки для опису пакетів. Наприклад, змініть заголовок області налаштувань на… ( ‘自定义文本设置’, ‘my-first-plugin’ )Змініть заголовок меню на… ( ‘我的插件设置’, ‘my-first-plugin’ )Таким чином, перекладачі зможуть користуватися цими можливостями. .po/.mo Файл містить інші мовні версії цих рядків.
Підготовка плагіна до публікації у офіційному каталозі
Якщо ви бажаєте подати плагін до офіційного каталогу плагінів WordPress.org, вам потрібно дотримуватися певних правил та вимог:
1. Стандарти кодування: Дотримуйтеся стандартів кодування WordPress.
2. Структура файлів: Окрім основного файлу, зазвичай також потрібні README.txt(Опис плагіна, призначеного для сторінок каталогів)uninstall.php(Виконання завдань з очищення під час видалення плагінів тощо.)
3. SVN-репозиторій: Офіційний каталог використовує систему версійного контролю Subversion (SVN). Вам необхідно завантажити код вашого плагіна у вказаний SVN-репозиторій.
4. Метадані:README.txt Потрібно створити інформаційний матеріал у певному форматі, який має включати такі елементи: назву плагіна, опис, спосіб встановлення, поширені запитання, журнал оновлень тощо.
підсумок
За допомогою цього посібника ви пройшли повний цикл розробки WordPress-плагіна: від створення першого файлу, написання заголовкових коментарів, використання дійових та фільтрових хуків для реалізації основних функцій, до додавання налаштувальних сторінок для плагіна, а також ознайомилися з такими продвинутими аспектами, як безпека, інтернаціоналізація та підготовка до публікації. Цей плагін, який додає користувацький текст у кінець статті, хоча й простий, але охоплює найважливіші концепції та процеси розробки плагінів. Опанувавши ці основи, ви зможете створювати все більш потужні та складні плагіни, використовуючи велику систему хуків WordPress, шорткоди, власні типи статей (CPT) та REST API. Пам’ятайте, що практика – це найкращий спосіб навчання; спробуйте змінювати код та додавати нові функції – це ключ до закріплення знань.
Часті запитання
Як має називатися головний файл плагіна?
Ім’я головного файлу плагіна не є обов’язковим, але воно має починатися з літери „plugin“. .php Кінець. Зазвичай, для зрозумілості та унікальності ми використовуємо назви, які збігаються з назвою папки з плагінами або описують функції плагіна. Наприклад: my-awesome-plugin.phpWordPress розпізнає плагіни, читаючи певний блок коментарів у верхній частині цього файлу.
Чому мій плагін не відображається у меню в бекенді?
Зазвичай це спричинено кількома причинами. По-перше, переконайтеся, що плагін був успішно активований. По-друге, перевірте… add_menu_page() Або параметри користувацьких прав (capability) у подібних функціях – переконайтеся, що поточний зареєстрований користувач має відповідні права (наприклад…). manage_optionsНаостанок, переконайтеся, що ваша функція правильно виконує свої обов’язки. add_action(‘admin_menu’, …) Монтаж. Будь-яка помилка синтаксису PHP може призвести до невдачі ініціалізації всього плагіна.
Як налагодити PHP-помилки у плагіні?
На етапі розробки рекомендується увімкнути режим налагодження (debugging mode) у WordPress. Це можна зробити, відкривши файл конфігурації WordPress, який зазвичай знаходиться у кореневому каталозі веб-сайту. wp-config.php У файлі переконайтеся, що наступні налаштування були увімкнені:
define( ‘WP_DEBUG’, true );
define( ‘WP_DEBUG_LOG’, true ); // 将错误记录到 /wp-content/debug.log
define( ‘WP_DEBUG_DISPLAY’, false ); // 不建议在页面上显示,以免破坏布局
Таким чином, повідомлення про помилки будуть збережені у файлі журналу, що полегшить пошук проблем. Перед публікацією плагіна обов’язково вимкніть режим налагодження.
Де зберігаються дані параметрів плагінів?
Використання плагінів add_option() 或 update_option() Дані, збережені функціями, за замовчуванням зберігаються у базі даних WordPress. wp_options У таблиці (префікси таблиць можуть відрізнятися). Використовуйте… get_option() Функції можуть зчитувати ці дані. Для більш складних структур даних іноді створюються власні таблиці в базах даних, але це вимагає більш ретельного підходу під час обробки даних.
Як зробити так, щоб мій плагін підтримував кілька мов (інтернаціоналізацію)?
Вам потрібно використовувати функції перекладу WordPress для обгортання всіх текстових елементів, призначених для користувачів. Найпоширенішими з цих функцій є… __(‘字符串’, ‘text-domain’) 和 _e(‘字符串’, ‘text-domain’)Потім використовуйте такі інструменти, як Poedit, щоб вилучити ці рядки та створити необхідний результат. .pot Шаблонний файл, а також створення відповідних версій цього файлу для різних мов (наприклад, англійської, китайської тощо). zh_CN.po 和 .moВідповідний файл перекладу потрібно розмістити у каталозі плагінів. /languages/ Знаходиться у папці та використовується під час ініціалізації плагіна. load_plugin_textdomain() Функції їх завантажують.
Наступний крок, що робити далі?
Для подальшого читання та практичних знань
Наступні матеріали пов'язані з темою цієї статті і можуть бути корисними для подальшого вивчення. Зазвичай краще починати з статей, які найбільш тісно пов'язані з вашим поточною проблемою, а потім поступово переходити до суміжних тем.
- Розробка тем для WordPress з нуля: створення унікального інтерфейсу веб-сайту
- Посібник з розробки плагінів для WordPress: створіть свій перший власний плагін з нуля
- Як стати розробником плагінів для WordPress: повний посібник від нуля
- Повний посібник з розробки тем для WordPress: практичний курс від нуля до майстерності
- Повний посібник з розробки тем для WordPress: створення професійних шаблонів веб-сайтів з нуля