Підготовчі роботи та налаштування середовища
Перш ніж почати писати код, вам знадобиться відповідне середовище для розробки. До нього належать локальна версія WordPress та програма для редагування коду. Рекомендується використовувати такі інструменти, як XAMPP, MAMP, Local by Flywheel чи Laragon, щоб швидко налаштувати локальне серверне середовище. Переконайтеся, що у вашому середовищі встановлені останні версії PHP (рекомендується версія 7.4 або вища) та MySQL/MariaDB.
Наступно вам потрібно ознайомитися з основною структурою плагінів для WordPress. Найважливішим файлом плагіна є головний PHP-файл; його назву та назву каталогу можна визначити самостійно, але у файлі обов’язково має бути присутня певна коментарна рядка (хедер), яка інформує систему 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="/uk/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="uk"/></form>
</div>
<?php
} Цей код створює новий верхній меню під назвою “Мої плагіни”; натискання на це меню відкриває просту сторінку налаштувань. Для реалізації цього були використані певні технології та інструменти. add_menu_page Була створена функція для реєстрації меню, а також визначена функція-повернення (callback function). mfp_settings_page Цей код використовується для рендерингу вмісту сторінки.
Рекомендуємо до прочитання. Посібник з розробки плагінів для WordPress: Від нуля до створення вашого першого функціонального плагіна。
Розширення функціоналу за допомогою хуків та фільтрів
Сила ядра WordPress полягає у його архітектурі плагінів, яка реалізується за допомогою так званих дійових (action) та фільтрувальних (filter) хуків. Дійові хуки дозволяють виконувати власний код у певні моменти виконання програми, а фільтрувальні хуки – модифікувати дані.
Використовуйте дії-хаки (action hooks) для додавання підписів на сторінці.
Припустимо, ми хочемо автоматично додавати певний текст на кінець кожної статті на нашому веб-сайті. Це можна зробити, використовуючи механізми монтування (mounting) відповідних компонентів. the_content Цей фільтр реалізований за допомогою хуків (filters hooks). Зверніть увагу: хоча його назва – “фільтр”, насправді він виконує функції більш складних механізмів обробки даних. the_content Зазвичай використовується для зміни вихідного контенту статей.
// 在文章内容末尾添加自定义文本
function mfp_append_text_to_content($content) {
// 确保只在主循环的单篇文章页面添加
if (is_single() && in_the_loop() && is_main_query()) {
$custom_text = '<p><em>Ця стаття представлена для вас проектом “Мій перший плагін”.</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="/uk/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="uk"/></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 та глибоке розуміння його системи хуків є ключовими факторами для досягнення успіху у розробці плагінів.
Часті запитання
Які програмні знання необхідні для розробки плагінів для 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: від початківців до майстрів – створення професійних розширень