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

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

Навіщо потрібно розробляти власні плагіни?

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

З точки зору навчання, розуміння механізмів розробки плагінів є необхідним кроком для глибокого оволодіння системою WordPress. Це дозволяє вам перейти від ролі “користувача” до ролі “творця”, що надає більшу гнучкість у вирішенні різноманітних вимог щодо налаштувань, а також створює міцну основу для майбутньої розробки продуктів чи кар’є

Підготовчі роботи: створення середовища для розробки

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

Налаштування локального середовища розробки

Рекомендується використовувати місцеві пакети програмного забезпечення для серверів, такі як Local by Flywheel, XAMPP чи MAMP. Ці інструменти імітують середовище мережевого сервера (Apache/Nginx, MySQL, PHP) на вашому комп’ютері, що дозволяє вам виконувати розробку в офлайн-режимі. Після встановлення створіть новий сайт на базі WordPress як свою “пісочницю” для тестування.

Вибір кодового редактора

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

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

Структура базових файлів плагіна

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

Створення вашого першого плагіна “Hello Admin”

Ми створимо плагін під назвою “Hello Admin”, функція якого дуже проста: він відображатиме на верхній частині панелі керування WordPress користувацьке привітання на замовлення. Цей приклад охоплює основні елементи розробки плагінів: головний файл, хеки (Hooks) та базові функції.

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

У вашому папку з плагінами my-first-plugin Усередині створіть об’єкт під назвою… my-first-plugin.php Це файл, який використовується як вхідний для плагіна. Відкрийте його та спочатку додайте стандартні коментарі з інформацією про плагін у верхній частині файлу. Ці коментарі необхідні для того, щоб WordPress міг розпізнати ваш плагін.

<?php
/**
 * Plugin Name:       Hello Admin
 * Plugin URI:        https://yourwebsite.com/hello-admin
 * Description:       一个简单的插件,用于在管理后台显示欢迎信息。
 * Version:           1.0.0
 * Author:            你的名字
 * License:           GPL v2 or later
 * Text Domain:       hello-admin
 */

Використовуйте хаки (hooks) для додавання нових функцій.

Основною механікою WordPress є система “хуків” (Hooks), яка дозволяє вставляти власний код у певні моменти виконання програми. Існує два основні типи хуків: хуки дій (Action Hooks) та хуки фільтрів (Filter Hooks). Щоб виводити вміст у панелі керування, нам потрібно використовувати хуки дій.

Під час завантаження головної частини адміністративної панелі WordPress надається елемент інтерфейсу під назвою… admin_notices Дієві хаки (action hooks). Ми можемо їх використовувати для… add_action() Функція монтує нашу власну функцію на цей хук (hook).

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

// 钩子函数:在管理后台显示通知
function hello_admin_display_message() {
    // 确保只对管理员显示,使用 current_user_can() 检查权限
    if ( current_user_can( 'manage_options' ) ) {
        echo '<div class="notice notice-success is-dismissible"><p>Ласкаво повернутися, адміністраторе! Це ваш власний плагін “Hello Admin”, який зараз працює.</p></div>';
    }
}
// 将我们的函数挂载到 ‘admin_notices’ 这个动作钩子上
add_action( 'admin_notices', 'hello_admin_display_message' );

Тестування та активація

Збережіть файл. Тепер увійдіть у панель керування вашого локального веб-сайту WordPress (зазвичай це відбувається за адресою: http://localhost:5000/). /wp-adminПерейдіть до меню “Плагіни”; у списку плагінів ви повинні побачити плагін “Hello Admin”. Натисніть “Увімкнути”. Після увімкнення оновіть сторінку панелі керування – у верхній частині сторінки з’явиться зелене вікно з повідомленням про успіх, яке відображатиме встановлене вами привітальне повідомлення. Це означає, що ваш перший плагін успішно запрацював!

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

Додайте до плагіна налаштуванні, які можна буде змінювати.

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

Створити сторінку меню керування

Нам потрібно додати сторінку налаштувань у адміністративному інтерфейсі. Це можна зробити, використовуючи відповідні функції системи. add_menu_page()add_submenu_page() Реалізація функцій. Ми продовжуємо додавати код у основний файл плагіна.

По-перше, створіть функцію для генерації HTML-контенту сторінки налаштувань та зареєструйте один пункт меню:

// 创建插件设置页面
function hello_admin_add_settings_page() {
    add_options_page(
        'Hello Admin 设置', // 页面标题
        'Hello Admin',      // 菜单标题
        'manage_options',   // 所需权限
        'hello-admin',      // 菜单slug
        'hello_admin_render_settings_page' // 用于渲染页面的回调函数
    );
}
add_action( 'admin_menu', 'hello_admin_add_settings_page' );
// 渲染设置页面的HTML
function hello_admin_render_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1>Вітаємо! Це інструкція щодо налаштувань функцій системи “Hello Admin”.</h1>
        <form method="post" action="/uk/options.php/" data-trp-original-action="options.php">
            <?php
            settings_fields( 'hello_admin_settings_group' ); // 设置组名称
            do_settings_sections( 'hello-admin' ); // 页面slug
            submit_button(); // 提交按钮
            ?>
        <input type="hidden" name="trp-form-language" value="uk"/></form>
    </div>
    &lt;?php
}

Налаштування реєстрації, поля та зберігання даних

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

// 初始化设置
function hello_admin_settings_init() {
    // 注册一个设置,将其存储在 wp_options 表中
    register_setting( 'hello_admin_settings_group', 'hello_admin_custom_message', 'sanitize_text_field' );
// 在页面上添加一个设置区域(可以省略,此处为清晰而加)
    add_settings_section(
        'hello_admin_section',
        '自定义消息设置',
        null, // 可选的区域描述回调函数
        'hello-admin'
    );
// 在区域中添加一个字段
    add_settings_field(
        'hello_admin_message_field',
        '欢迎消息',
        'hello_admin_message_field_callback',
        'hello-admin',
        'hello_admin_section'
    );
}
add_action( 'admin_init', 'hello_admin_settings_init' );
// 渲染消息输入字段
function hello_admin_message_field_callback() {
    $message = get_option( 'hello_admin_custom_message', '欢迎回来,管理员!' ); // 获取已保存的值,没有则用默认值
    echo '<input type="text" name="hello_admin_custom_message" value="' . esc_attr( $message ) . '" class="regular-text" />'echo '<p class="description">Введіть тут привітальне повідомлення, яке ви бажаєте показувати у менеджерському інтерфейсі.</p>';
}

Змініть функцію відображення так, щоб вона використовувала параметри конфігурації.

Наостанок нам потрібно змінити початкову функцію відображення сповіщень. hello_admin_display_message()Нехай це буде доступно з опцій бази даних. hello_admin_custom_message Вміст читається з файлів, а не є жорстко закодованим.

Міжсерверний віртуальний хостинг
Віртуальний хостинг $2.50 USD на місяць, перший місяць $0.1 USD за промокодом tryinterserver, 461 скрипт хмарних додатків, встановлення в один клік.
function hello_admin_display_message() {
    if ( current_user_can( 'manage_options' ) ) {
        $custom_message = get_option( 'hello_admin_custom_message', '欢迎回来,管理员!' ); // 获取自定义消息
        if ( ! empty( $custom_message ) ) {
            echo '<div class="notice notice-success is-dismissible"><p>'`.esc_html($custom_message).`'</p></div>';
        }
    }
}

Зараз збережіть всі зміни. Поверніться до backend-інтерфейсу WordPress та у меню “Налаштування” знайдіть пункт “Hello Admin”. Увійдіть на цю сторінку, змініть повідомлення та збережіть зміни. Оновіть інформацію на панелі керування – повідомлення, яке відображається, тепер буде відповідати вашим налаштуванням. Таким чином ви створили власний плагін із базовими функціями конфігурації.

Найкращі практики розробки плагінів та наступні кроки

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

Безпека є найвищим пріоритетом: завжди перевіряйте, ескапуйте та очищуйте дані, введені користувачами. Використовуйте функції, які надає WordPress. esc_html(), esc_attr(), sanitize_text_field(), wp_nonce_field() І так далі. Ніколи не довіряйте безпосередньо даним, отриманим від користувачів чи з баз даних.

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

Підготовка до інтернаціоналізації: Якщо ви плануєте оприлюднити свій плагін, він має підтримувати інтернаціоналізацію (i18n). Це означає, що вам потрібно… __()_e() Функції, які обгортають усі текстові дані, призначені для користувачів, також встановлюють відповідні параметри текстового домену (Text Domain). Завдяки цьому інші особи зможуть перекласти ваш плагін на інші мови.

Міркування щодо продуктивності: завантажуйте ресурси вашого плагіна (CSS, JavaScript) лише тоді, коли це необхідно. Раціонально використовуйте умовні оператори, щоб уникнути завантаження скриптів, які потрібні лише на певних сторінках. Оптимізуйте запити до бази даних та ефективно використовуйте API WordPress для кешування (Transients).

Детальніше дослідження: Після оволодіння основами ви зможете вивчати більш складні теми, такі як створення власних типів статей (Custom Post Types, CPT), власних систем класифікації, додавання коротких кодів (Shortcodes), розробка власних вбудованих елементів інтерфейсу (Widgets), інтеграція з REST API, а також створення блоків для своїх плагінів із можливістю їх легкого переміщення та налаштування.

підсумок

За допомогою цього посібника ви повністю пройшли процес створення функціонального користувацького розширення для WordPress з нуля. Ви ознайомилися з основними концепціями розробки розширень, включаючи структуру файлів, основну систему крючків (Hooks) та способи створення безпечних сторінок налаштувань за допомогою API Settings. Хоча розширення “Hello Admin” і є простим, воно відображає ключові елементи розробки розширень: оголошення інтерфейсу розширення, монтування його функцій, обробку даних та відображення результатів. Опанувавши ці основи, ви отримаєте можливість досліджувати величезні можливості розширення функціоналу WordPress. Пам’ятайте, що постійне навчання, дотримання найкращих практик та готовність до практичних експериментів є ключовими факторами для покращення ваших навичок розробки розширень.

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

Як мінімум, яких файлів потрібно для створення плагіна для WordPress?

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

У чому різниця між хуками дій (action hooks) add_action та хуками фільтрів (filter hooks)?

Акційні хаки (Action Hooks) використовуються для виконання певного коду чи функції у певний момент часу. Вони не призначені для повернення жодних значень; їхня основна мета – просто виконати певну дію. Наприклад, надіслати електронний лист після публікації статті.

Фільтрові хуки (Filter Hooks) використовуються для модифікації даних. Вони приймають одне вхідне значення та очікують повернення модифікованого значення. Наприклад, перед відображенням заголовка статті в браузері можна змінити його зміст. Основна відмінність між ними полягає у тому, що дії виконуються безпосередньо, тоді як фільтри модифікують дані та повертають їх у новому вигляді.

Як безпечно зберігати дані, введені користувачем, у базі даних?

Обов’язково використовуйте функції API, які надає WordPress.update_option()register_setting()register_setting()Функція дозволяє вам вказати функцію-повернення для виконання очищення (наприклад…).sanitize_text_fieldЦей процес виконується автоматично перед збереженням даних. Ніколи не варто використовувати дані без попередньої обробки.$wpdbВикористання непродубльованих даних користувачів для вставки в SQL-запити може призвести до серйозних безпекових проблем (наприклад, до вразливості типу SQL-ін’єкції).

Як уникнути конфліктів з іншими плагінами під час їх розробки?

Добрі практики кодування є ключовими для уникнення конфліктів. Додавайте унікальні префікси до всіх своїх функцій, класів, змінних та назв параметрів. Наприклад, використовуйте такі префікси…hello_admin_display_messageа не те, що зазвичай буваєdisplay_messageЗакомпонуйте ваш CSS-стиль та JavaScript-код у відповідні класи чи ID-селектори. Під час додавання хуків переконайтеся, що ваші функції-повернення виконуються лише за необхідних умов (наприклад, після перевірки поточної сторінки чи прав користувача).