Повний посібник з розробки плагінів для WordPress: створіть свій перший функціональний плагін з нуля

Читання за 3 хвилини.
2026-03-16
2026-06-03
2,237
Я заробляю комісію, коли ви робите покупки за посиланнями нижче, без додаткових витрат для вас.

Середовище розробки плагінів для WordPress та базові підготовчі кроки

Перш ніж почати писати код, стабільне та ефективне середовище розробки має бути надзвичайно важливим. Це не лише підвищує вашу продуктивність під час роботи, але й допомагає дотримуватися найкращих практик, гарантуючи якість та сумісн

По-перше, вам знадобиться локальне середовище розробки для WordPress. Ви можете швидко його налаштувати за допомогою таких інструментів, як XAMPP, MAMP, Local by Flywheel або Docker. Переконайтеся, що у вашому середовищі встановлені найновіші версії PHP (рекомендується версія 7.4 або вища) та MySQL/MariaDB. Локальне середовище розробки дозволяє вам вільно проводити тести та налагодження, не впливаючи на роботу веб-сайту в реальному часі.

По-друге, вам знадобиться кодовий редактор або інтегроване середовище розробки (IDE). Visual Studio Code, PhpStorm чи Sublime Text – це чудові варіанти, які надають функції підсвічування синтаксису, підказок під час написання коду та можливостей налагодження помилок. Також рекомендується встановити інструменти для контролю якості коду, наприклад PHP_CodeSniffer, та налаштувати стандарти кодування WordPress, щоб ваш код відповідав стандартам, встановленим у самому WordPress.

Рекомендуємо до прочитання. Повний посібник з розробки плагінів для WordPress: від початківців до створення професійних розширень

Наостанок, розуміння базової структури плагінів для WordPress є першим кроком у їх створенні. Найпростіший плагін потребує лише одного основного PHP-файлу, у якому на початку мають бути вказані певні дані про плагін у вигляді коментарів. Цей файл є вхідною точкою для роботи плагіна; WordPress ідентифікує та керує ним, читаючи ці дані.

UltaHost – хостинг для сайтів, побудованих на платформі WordPress
Гарантія повернення грошей протягом 30 днів, необмежена пропускна здатність мережі та доступ до баз даних, безкоштовний захист від DDoS-атак; знижка 50% при покупці на термін 3 роки (варіанти об’ємів трафіку: 4 ТБ/5

Створіть свій перший файл плагіна.

Давайте почнемо зі створення найпростішого плагіна “Hello World”. Цей процес допоможе вам зрозуміти основну структуру плагінів та те, як WordPress розпізнає їх.

По-перше, у каталозі встановлення WordPress потрібно знайти файл…wp-content/pluginsУ цьому папці створіть новий папірець. Назва папки має бути унікальною, описовою та складатися з малих літер та дефісів. Наприклад:my-first-plugin

У цьому папці створіть головний PHP-файл; його назва зазвичай збігається з назвою папки. Наприклад:my-first-plugin.phpНа початку цього файлу ви повинні додати коментар із заголовком плагіна, який відповідає стандартам WordPress. Це своєрідний “паспорт” плагіна, що містить інформацію про його назву, опис, версію, автора тощо. Без цього коментаря WordPress не зможе знайти ваш плагін у списку плагінів у системному меню.

Ось приклад найбазовішого файлу плагіна:

Рекомендуємо до прочитання. Початок з нуля: чому варто обирати розробку плагінів для WordPress?

<?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
 */

// 防止直接访问文件
if ( ! defined( 'ABSPATH' ) ) {
    exit; // 如果ABSPATH未定义,则退出
}

Після збереження цього файлу увійдіть у свій WordPress-акаунт, перейдіть на сторінку “Плагіни” (Plugins), і ви повинні побачити плагін “Мій перший плагін” у списку плагінів. Тепер ви можете активувати його, але він ще нічого не буде робити.if ( ! defined( ‘ABSPATH’ ) )Перевірка є важливою практикою безпеки, яка запобігає можливості прямого доступу користувачів до файлів вашого плагіна за допомогою URL-адреси, гарантуючи тим самим, що код виконуватиметься лише у середовищі WordPress.

Додати основні функції до плагіна

Активований плагін потребує виконання певних дій. У WordPress це здійснюється за допомогою “дій-хуків” (Action Hooks) та “фільтр-хуків” (Filter Hooks). Вони є основою архітектури плагінів WordPress та дозволяють вам вставляти власний код або змінювати дані у певні моменти часу.

Використовуйте дії-хаки (action hooks) для додавання сповіщень у систему керування.

Акційні хаки (action hooks) дозволяють виконувати власні функції у певні моменти під час роботи WordPress – наприклад, після завершення ініціалізації, під час завантаження верхньої частини сторінки чи під час збереження статті. Давайте додамо просту функцію: виведення привітального повідомлення у верхній частині панелі керування WordPress.

hosting.com Віртуальний хостинг
Висока продуктивність завдяки процесорам AMD EPYC, SSD-накопичувачам NVMe і технології LiteSpeed, цілодобова експертна підтримка, розширені заходи безпеки, включаючи SSL, грубу силу, захист від шкідливих програм і DDoS, економія до 73%.

Ми будемо використовуватиadmin_noticesЦей хак для виконання певних дій. Спочатку вам потрібно створити функцію, яка буде генерувати HTML-контент, а потім використовувати її для виконання необхідних дій.add_action()Функція “монтує” цю функцію на відповідний хук (hook).

У вашому основному файлі плагіна додайте наступний код:

/**
 * 在管理后台显示欢迎通知
 */
function myfp_display_admin_notice() {
    ?&gt;
    <div class="notice notice-success is-dismissible">
        <p>Ласкаво просимо використовувати “Мій перший плагін”! Плагін було успішно активовано.</p>
    </div>
    &lt;?php
}
// 将函数挂载到 admin_notices 动作钩子
add_action( &#039;admin_notices&#039;, &#039;myfp_display_admin_notice&#039; );

Збережіть зміни та оновіть свій бекенд WordPress. У верхній частині сторінки ви повинні побачити зелене вікно підтвердження успіху. Зверніть увагу на назву функції.myfp_display_admin_noticeВикористано префікс.myfp_(Взято з скорочення назви плагіна) Це робиться для уникнення конфліктів із іменами функцій інших плагінів чи тем. Це обов’язкове правило найменування, якому потрібно дотримуватися.

Рекомендуємо до прочитання. Повний посібник з розробки плагінів для WordPress: створення високоякісних розширень для системи від нуля

Використовуйте хаки фільтрів для зміни вмісту статей.

Фільтр-хаки дозволяють вам змінювати дані, які передаються в WordPress. Наприклад, ви можете змінювати вміст статті, її заголовок чи анотацію перед їх відображенням. Створімо функцію, яка автоматично додає у кінець кожної статті повідомлення про авторські права.

Ми будемо використовуватиthe_contentЦей фільтр-хук. Вам потрібно створити механізм для прийому оригінального контенту…$contentФункція, яка отримує певний вхідний даний, модифікує його та потім повертає результат цих змін.

Міжсерверний віртуальний хостинг
Віртуальний хостинг $2.50 USD на місяць, перший місяць $0.1 USD за промокодом tryinterserver, 461 скрипт хмарних додатків, встановлення в один клік.

Додайте наступний код до вашого файлу плагіна:

/**
 * 在文章内容末尾添加版权声明
 * @param string $content 原始的文章内容
 * @return string 修改后的文章内容
 */
function myfp_add_copyright_to_content( $content ) {
    // 仅对主循环中的单篇文章页面生效
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $copyright_text = '<p><em>Авторські права на цей текст належать цьому веб-сайту. При перепублікації необхідно вказати джерело.</em></p>';
        $content .= $copyright_text;
    }
    return $content;
}
// 将函数挂载到 the_content 过滤器钩子,优先级为10
add_filter( 'the_content', 'myfp_add_copyright_to_content', 10 );

Тепер, коли ви переглядаєте будь-яку статтю на веб-сайті, унизу її вмісту відображається заява про авторські права, яку ви додали. У функції виконується умовне перевірення для визначення моменту, коли потрібно вивести цю заявуis_single() && in_the_loop() && is_main_query()Дуже важливо, щоб цей текст відображався лише у основному циклі сторінок окремих статей на фронтенді, а не у списку на головній сторінці, у підказках чи в інших місцях. Це деталь, на яку варто звернути увагу під час написання якісних плагінів.

Інтернаціоналізація плагінів та найкращі практики їх розробки

Щоб ваш плагін міг використовуватися користувачами по всьому світу, інтернаціоналізація (i18n) є незамінним кроком. WordPress надає повний набір функцій для підтримки перекладу тексту у плагіні на інші мови.

Підготуйте текст для плагіна для підтримки перекладу.

Вам потрібно використовувати певну функцію для обгортання всіх рядків, які виводяться на екран користувачеві у вашому плагіні. Найпоширенішою такою функцією є… (назва функції).()Використовується для отримання перекладу._e()Використовується для безпосереднього відображення перекладу, а також…esc_html()Використовується у контекстах, де необхідно ескапувати HTML-теги.

По-перше, змінім текст у функціях сповіщень та функціях, що стосуються авторських прав, які ми створили раніше, використовуючи функцію перекладу:

function myfp_display_admin_notice() {
    ?&gt;
    <div class="notice notice-success is-dismissible">
        <p><?php _e( '欢迎使用“我的第一个插件”!插件已成功激活。', 'my-first-plugin' ); ?></p>
    </div>
    &lt;?php
}

function myfp_add_copyright_to_content( $content ) {
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $copyright_text = &#039;<p><em>' . esc_html__( '本文版权归本网站所有,转载请注明出处。', 'my-first-plugin' ) . '</em></p>';
        $content .= $copyright_text;
    }
    return $content;
}

Зверніть увагу: кожна функція перекладу містить другий параметр.‘my-first-plugin’Це те, що ви визначили у вихідній частині плагіна (в его документі плагіна).Text DomainЦе унікальний ідентифікатор, який дозволяє системі WordPress зрозуміти, до якого плагіна належать ці рядки.

Потім вам потрібно вказати це у коментарях на початку коду плагіна.Domain Path(тобто)/languagesРозмістіть файли перекладу (.po та .mo) у відповідній папці. Для створення та керування цими файлами ви можете використовувати такі інструменти, як Poedit.

Дотримуйтесь правил безпеки та стандартів програмування.

Безпека є найважливішим аспектом розробки плагінів. Ніколи не довіряйте даним, введеним користувачем. Під час обробки будь-яких даних, отриманих від користувача…$_GET$_POST$_REQUESTПеред використанням даних необхідно їх перевірити, очистити та ескапувати.

WordPress надає широкий спектр функцій, які допоможуть вам у вашій роботі:
* 验证(Validation):检查数据是否符合预期格式(如is_email())。
* 清理(Sanitization):清除数据中的非法字符(如sanitize_text_field()sanitize_email())。
* 转义(Escaping):在将数据输出到HTML、JavaScript或URL之前,确保其安全(如esc_html()esc_js()esc_url())。

Крім того, під час безпосередньої роботи з базою даних обов’язково використовуйте класи для роботи з базою даних WordPress.$wpdbНадані методи, такі як…$wpdb->prepare()Це робиться для запобігання атакам типу SQL-ін’єкцій.

підсумок

За допомогою цього посібника ви повністю пройшли процес створення функціонального WordPress-плагіна з нуля. Ви навчилися налаштовувати середовище розробки, створювати базові файли плагіна, використовувати дії та фільтри для додавання нових функцій до WordPress, а також покращувати професіоналізм та доступність плагіна за допомогою механізмів інтернаціоналізації та безпеки. Суть розробки плагінів полягає у розумінні та вмілому використанні системи хуків WordPress, яка забезпечує неперевершену можливість розширення та гнучкість. Пам’ятайте: починайте з простих функцій, поступово вдосконалюйте свій плагін, і завжди ставіть безпеку та якість коду на перше місце – так ви зможете створити потужний та надійний WordPress-плагін.

Часті запитання

Чи обов’язково плагін має знаходитися у певній папці?

Не обов’язково. Дуже простий плагін, який складається з одного файлу, може виконувати потрібні функції без додаткових налаштувань.plugin-name.phpРозміститиwp-content/plugins/Файли знаходяться у відповідному каталозі. Однак для плагінів, які містять кілька файлів (CSS, JS, зображень чи мовних файлів), дуже рекомендується використовувати окрему папку для організації всіх відповідних файлів. Це зробить структуру більш зрозумілою та полегшить їх управління.

Як створити сторінку налаштувань для мого плагіна?

Ви можете використовувати API налаштувань, який надає WordPress, щоб створити професійні та безпечні сторінки налаштувань. Основні кроки включають:add_menu_page()add_submenu_page()Функція реєструє сторінку меню, а потім її використовує.register_setting()add_settings_section()add_settings_field()Використовуйте такі функції, як `defineField` та `defineChapter`, щоб встановити значення для полів та розділів. Нарешті, напишіть функцію-колбачок (callback), яка буде генерувати HTML-форму для сторінки налаштувань.

Чому префікси так важливі під час розробки плагінів?

WordPress – це величезна екосистема, яка складається з плагінів та тем. Усі файли коду виконуються у рамках одного глобального простору імен. Якщо ви визначили змінну під назвою…get_data()Якщо звичайна функція вже існує, а інший плагін також визначає функцію з тим самим ім’ям, це може призвести до фатальної помилки, що спричинить збій роботи веб-сайту. Використання унікального префікса (наприклад, скорочення назви плагіна) дозволяє значно зменшити ймовірність кон

Як мені налагодити код свого плагіна?

Під час розробки для WordPress основним інструментом для налагодження проблем є використання функції дебагування.WP_DEBUGВи можете це зробити на веб-сайті.wp-config.phpУ файлі це можна зробити шляхом встановлення відповідних параметрів.define( ‘WP_DEBUG’, true );Щоб увімкнути цю функцію, виконайте відповідні кроки. У результаті всі PHP-помилки, попередження та сповіщення будуть відображатися на екрані. Для більш складного налагодження програми ви можете скористатися додатковими інструментами.error_log()Функція записує інформацію до помилкового журналу сервера або використовує професійні інструменти для налагодження PHP, такі як Xdebug, у поєднанні з вашим інтегрованим середовищем розробки (IDE), для лінійного налагодження коду.