У безмежному просторі Інтернету WordPress завоював значну частину ринку систем управління контентом завдяки своїй високій розширюваності. Серцем цієї розширюваності є плагіни. За допомогою плагінів для WordPress ви можете додати до свого сайту будь-які функції, які тільки можете уявити. У цій статті ми поетапно покажемо вам, як створити свій перший плагін для WordPress, детально розглянемо його основну структуру та процес розробки.
Основи плагінів для WordPress та налаштування середовища розробки
Перш ніж розпочати розробку, дуже важливо зрозуміти сутність плагінів для WordPress та створити відповідне середовище для роботи. Плагін по суті являє собою один або кілька файлів на PHP мові, які відповідають стандартам WordPress та виконують певні функції за допомогою спеціальних механізмів, передбачених цим фреймворком.钩子(Засоби взаємодії) Здійснюють взаємодію з основною системою.
Основне визначення плагіна.
Кожен плагін має мати єдиний основний файл, у якому у вступній частині („header“) мають бути зазначені дані про плагін у вигляді коментарів у певному форматі. Саме ці коментарі використовуються системою WordPress для ідентифікації плагіна на сторінці керування плагінами, а також для відображення такої інформації, як назва плагіна, опис, версія то
Рекомендуємо до прочитання. Розкриття секретів розробки плагінів: створіть свій перший розширення з нуля。
Налаштування локального середовища розробки
Для ефективного та безпечного розроблення настійно рекомендується використовувати локальне серверне середовище. Ви можете обрати такі інструменти, як XAMPP, MAMP, Local by Flywheel або Docker. Основні вимоги: встановити PHP (версія має бути сумісною з вашим цільовим сервером), MySQL/MariaDB та Apache/Nginx. Після цього завантажте найновіші файли ядра WordPress та завершіть їх встановлення.
Створіть свій перший плагін: невеликий інструмент для вітань
Тепер давайте разом створимо простий плагін. Функція цього плагіна полягає у тому, що він автоматично додає на кінець тексту статті на сайті власне привітання.
По-перше, у WordPress… wp-content/plugins У каталозі створіть нову папку під назвою my-first-greeting-pluginПотім створіть головний PHP-файл у цьому папці; його можна назвати… my-first-greeting-plugin.php。
Заява про інформацію у відповідальній частині плагіна
Відкрийте головний файл та введіть наступний код для визначення плагіна:
<?php
/**
* Plugin Name: 我的第一个问候语插件
* Plugin URI: https://yourwebsite.com/my-first-greeting-plugin
* Description: 这是一个练习用的插件,用于在文章末尾添加问候语。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://yourwebsite.com
* License: GPL v2 or later
* Text Domain: my-first-greeting-plugin
*/ Після збереження файлу перейдіть на сторінку “Плагіни” у панелі керування WordPress. Ви повинні побачити цей новий плагін у списку плагінів та зможете його активувати. Звісно, наразі він не має жодних функцій.
Рекомендуємо до прочитання. 10 ключових порад та практичних рекомендацій щодо оптимізації продуктивності веб-сайтів для електронної комерції на платформі WooCommerce。
Використовуйте хаки для додавання ключових функцій.
Функціонування WordPress сильно залежить від механізму “хаків” („hooks“), які поділяються на…动作钩子(ACTION Hooks) та过滤器钩子(Фільтрувальні хуки – Filter Hooks). Щоб додати текст після змісту статті, нам потрібно використати ці фільтрувальні хуки. the_content Цей фільтр-хук.
Під коментарями на початку головного файлу додайте наступні функції та хаки:
// 定义向文章内容添加问候语的函数
function mfgp_add_greeting_to_content( $content ) {
// 确保只在主循环的单篇文章页面显示
if ( is_single() && in_the_loop() && is_main_query() ) {
$greeting = '<p style="color:#666; font-style:italic;">Дякуємо, що прочитали цю статтю! Бажаємо вам чудового дня!</p>';
$content .= $greeting;
}
return $content;
}
// 将函数挂载到 ‘the_content’ 过滤器钩子上
add_filter( 'the_content', 'mfgp_add_greeting_to_content' ); Після збереження файлу та активації плагіна відкрийте будь-яку статтю на веб-сайті, прокрутіть її до кінця – там ви повинні побачити додане привітання. За допомогою цього простого прикладу ви вже опанували найважливіші концепції розробки плагінів: оголошення плагіна, написання функцій, їх використання для виконання певниadd_filter或add_actionПрикріпіть функцію до відповідного хака (hook).
Покращення функцій плагіна: додано сторінку для налаштувань управління.
Зрілий плагін зазвичай дозволяє користувачам налаштовувати його параметри у фоновому режимі. Далі ми створимо просту сторінку налаштувань для плагіна, який використовується для вітань, щоб адміністратор міг самостійно вибирати текст, який буд
Створити елемент меню керування
По-перше, нам потрібно використати…add_actionХук викликає певну функцію, і ця функція використовує… (The hook calls a certain function, and this function uses…) add_options_page Функція додає підсторінку до меню “Налаштування” в бекенді WordPress.
У головному файлі продовжіть додавати наступний код:
Рекомендуємо до прочитання. Від нуля до одного: Повний посібник та практичний курс з розробки плагінів для WordPress。
// 添加设置菜单
function mfgp_add_admin_menu() {
add_options_page(
'问候语插件设置', // 页面标题
'自定义问候语', // 菜单标题
'manage_options', // 权限要求(管理员)
'my-greeting-plugin', // 菜单 Slug
'mfgp_settings_page_html' // 用于输出页面内容的回调函数
);
}
add_action( 'admin_menu', 'mfgp_add_admin_menu' ); Створення сторінки налаштувань та логіки збереження даних
Зараз нам потрібно визначити вищезгадану функцію-повернення (callback function). mfgp_settings_page_html Необхідно отримати HTML-форму сторінки налаштувань та обробити дані, введені користувачем під час її заповнення. WordPress надає API для налаштувань, що спрощує цей процес, але для кращого розуміння механізмів роботи ми спочатку використаємо базові методи.
// 定义设置页面的 HTML 结构
function mfgp_settings_page_html() {
// 检查用户权限
if ( !current_user_can( 'manage_options' ) ) {
return;
}
// 处理表单提交(非设置API方式)
if ( isset( $_POST['mfgp_greeting_text'] ) ) {
// 验证 Nonce 确保请求来源安全
check_admin_referer( 'mfgp_save_settings' );
// 清理并保存输入的数据
$greeting_text = sanitize_textarea_field( $_POST['mfgp_greeting_text'] );
update_option( 'mfgp_custom_greeting', $greeting_text );
echo '<div class="notice notice-success is-dismissible"><p>Зміни були збережені!</p></div>';
}
// 获取已保存的问候语
$saved_greeting = get_option( 'mfgp_custom_greeting', '感谢您阅读本文!祝你拥有美好的一天!' );
?>
<div class="wrap">
<h1><p><strong> <p><strong></h1>
<form method="post" action="">
<?php wp_nonce_field( 'mfgp_save_settings' ); ?>
<table class="form-table">
<tr>
<th scope="row"><label for="mfgp_greeting_text">Власне привітання</label></th>
<td>
<textarea name="mfgp_greeting_text" id="mfgp_greeting_text" rows="5" cols="50" class="large-text"><?php echo esc_textarea( $saved_greeting ); ?></textarea>
<p class="description">Цей текст буде відображатися в кінці кожної статті.</p>
</td>
</tr>
</table>
<?php submit_button( '保存更改' ); ?>
<input type="hidden" name="trp-form-language" value="uk"/></form>
</div>
<?php
} Оновити функцію виведення даних на передньому кінці (фронтенд).
Наостанок нам потрібно змінити попередню функцію виведення даних на передньому кінці (фронтенді), щоб вона отримувала інформацію з параметрів бази даних.get_optionЗчитувати привітання з файлу, а не використовувати жорстко закодовані тексти.
function mfgp_add_greeting_to_content( $content ) {
if ( is_single() && in_the_loop() && is_main_query() ) {
// 从数据库选项中获取问候语,如果没有则使用默认值
$greeting_text = get_option( 'mfgp_custom_greeting', '感谢您阅读本文!祝你拥有美好的一天!' );
if ( ! empty( $greeting_text ) ) {
$greeting = '<p style="color:#666; font-style:italic;">'`. esc_html($greeting_text)`.'</p>';
$content .= $greeting;
}
}
return $content;
} Зараз адміністратори можуть вільно змінювати текст, який відображається, на сторінці “Налаштування” → “Користувацькі привітання”. Зміни будуть негайно відображатися на користувацькому інтерфейсі.
Підготовка до випуску плагіна: інтернаціоналізація та підвищення рівня безпеки
Перед тим, як поширювати плагін з іншими користувачами або подавати його до офіційного каталогу, необхідно виконати кілька важливих завдань, пов’язаних з інтернаціоналізацією та підвищенням рівня безпеки.
Реалізація інтернаціоналізації тексту
Інтернаціоналізація (i18n) дозволяє вашому плагіну бути перекладеним на інші мови. Вам потрібно обгорнути всі текстові елементи, призначені для користувачів, спеціальними функціями. Змініть текстові елементи у нашому плагіні.
1. У коментарях на початку плагіна ми вже визначили… Text Domain。
2. У коді використовуйте… () 或 esc_html() Функція обгортає рядок у певну структуру. Наприклад:
// 在设置页面函数中
$greeting_text = get_option( 'mfgp_custom_greeting', __( ‘感谢您阅读本文!祝你拥有美好的一天!’, ‘my-first-greeting-plugin’ ) );
echo ‘<h1>’ . esc_html__( ‘问候语插件设置’, ‘my-first-greeting-plugin’ ) . ‘</h1>’// У функції виведення даних на передньому кінці (увага: переднє виведення зазвичай не потребує перекладу, якщо тільки це не вимагається темою чи користувачем)
// Однак якщо сам привіт потребує підтримки кількох мов, може знадобитися більш складна логіка. 3. Використовуйте такі інструменти, як Poedit, для створення. .pot Шаблонні файли – це документи, на основі яких можуть створюватися інші файли чи вміст. .po 和 .mo Документи.
Посилити заходи безпеки
Безпека має вирішальне значення. Ми вже використовували деякі функції безпеки, такі як…sanitize_textarea_field、esc_html、esc_textarea和wp_nonce_fieldКрім того, також варто звернути увагу на наступне:
* 权限检查:在管理页面函数开始处使用 current_user_can Перевірити.
* 数据验证与清理:对所有用户输入(如 $_POST, $_GET)进行验证(是否符合预期格式)和清理(移除非法字符)。
* 非竞态条件更新:对于重要的选项,考虑使用 wp_options Під час роботи з таблицями безпечнішим способом є використання API Settings, який вбудовує механізми перевірки нонконкурентності (nonce) та авторизації користувачів.
підсумок
За допомогою цього посібника ми пройшли повний шлях створення та публікації функціонального WordPress-плагіна. Ми почали з розуміння основ плагінів, створивши головний файл, який містив стандартну інформацію про плагін; потім, за допомогою простої функції вітання, практикувалися з найважливішим механізмом плагінів WordPress – системою хуків (hooks); далі ми додали для плагіна сторінку налаштувань у панелі адміністратора, що забезпечило можливість користувачам налаштовувати його параметри; нарешті, ми розглянули ключові кроки перед публікацією плагіна – його інтернаціоналізацію та підвищення безпеки. Кожен крок включав в себе використання основних функцій WordPress та рекомендованих практик. Опанувавши ці основи, ви зможете спробувати розробити більш складні та креативні плагіни, щоб допомогти всьому світовому екосистемі WordPress.
Часті запитання
Які необхідні попередні знання для розробки плагінів для WordPress?
Вам потрібні базові знання програмування на PHP, розуміння HTML та CSS, а також певний досвід роботи з основними функціями WordPress (статті, сторінки, меню). Знання об’єктно-орієнтованого програмування (OOP) не є обов’язковими, але вони значно полегшать розробку складних плагінів.
Чому мій плагін не відображається у меню на задньому плані після його активації?
Найпоширеніша причина – проблеми з правами доступу. Перевірте, чи правильно ви виконуєте відповідні дії під час виклику функцій.add_options_pageКоли використовується подібна функція, чи правильно встановлений другий параметр (capability)? ‘manage_options’Крім того, переконайтеся, що ваша функція була правильно скомпільована та запущена.add_action( ‘admin_menu’, ...)Закріплення здійснено за допомогою гачка, і в коді немає граматичних помилок, які б могли перешкодити виконанню функції. Ви можете додати це на початок коду.error_logФункції використовуються для налагодження (дебагування) програмного забезпечення.
Як налаштувати та виправити помилки у своєму WordPress-плагіні?
По-перше, переконайтеся, що у вас є все необхідне для… wp-config.php У файлі увімкнений режим налагодження WordPress. define( ‘WP_DEBUG’, true ); 和 define( ‘WP_DEBUG_LOG’, true );Таким чином, повідомлення про помилку буде зареєстровано. /wp-content/debug.log Файл знаходиться у вказаному місці. Крім того, для налагодження фронтенд-частини програми можна використовувати вкладки “Консоль” та “Мережа” у інструментах розробника браузера. Для складної логіки рекомендується застосовувати додатковіerror_log( print_r( $variable, true ) );Виведення значень змінних у журнал записів є поширеним методом.
Як мій плагін може працювати взаємодіяти з іншими плагінами чи темами?
Щоб максимально забезпечити сумісність, ваш плагін має: 1) використовувати унікальні префікси для назв усіх функцій, класів, змінних і опцій (наприклад, ми використовуємоmfgp_Уникайте конфліктів імен. 2 ) При додаванні або зміні стилів для фронтенду або бекенду намагайтеся використовувати унікальні імена селекторів. 3 ) Якщо це можливо, надайте хуки для фільтрів.apply_filtersНе дозволяйте іншим розробникам змінювати поведінку вашого плагіна. 4) Уникайте прямого змінення таблиць бази даних або файлів ядра WordPress.
Наступний крок, що робити далі?
Для подальшого читання та практичних знань
Наступні матеріали пов'язані з темою цієї статті і можуть бути корисними для подальшого вивчення. Зазвичай краще починати з статей, які найбільш тісно пов'язані з вашим поточною проблемою, а потім поступово переходити до суміжних тем.
- Практичний посібник з SEO-оптимізації для 2026 року: систематичні стратегії від початківців до професіоналів
- Посібник з основ WordPress: створення вашого першого професійного веб-сайту з нуля
- Навіщо використовувати WooCommerce для створення інтернет-магазину?
- Чому варто обрати WordPress: десять основних переваг цього відкритого системного менеджера контенту (CMS)?
- Освоїть WooCommerce за десять хвилин: посібник зі створення та управління інтернет-магазином від початківців до отримання прибутку