Як навчитися розробляти плагіни для WordPress з нуля: повне керівництво та практичний посібник

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

Розуміння базової архітектури плагінів WordPress

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

Дослідження стандартної структури файлів плагінів

Стандартний плагін для WordPress зазвичай дотримується певної структури каталогів. Основний файл плагіна, наприклад… my-first-plugin.phpМає бути розміщено… /wp-content/plugins/ Цей файл знаходиться у вказаному каталозі або його підкаталогах. Він є надзвичайно важливим, оскільки містить інформацію про ваш плагін, необхідну для ідентифікації плагіна в системі WordPress.

Типовий каталог плагінів може містити наступні частини: основний файл плагіна, а також папки для зберігання статичних ресурсів, таких як JavaScript та CSS. assets/ Папка, призначена для файлів класів PHP includes/ Каталог, призначений для користувацького інтерфейсу admin/public/ Папки, а також інструменти, необхідні для перекладу файлів languages/ Зміст. Хороша структура допомагає організувати та підтримувати код, особливо коли функції плагінів стають складнішими.

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

Ознайомлення з основною інформацією про заголовок файлу плагіна

Кожен плагін має починатися з певної метаінформації (Header), яка міститься у блокі коментарів PHP. Саме ця інформація є ключовою для того, щоб WordPress розпізнав плагін. Основний формат такої метаінформації виглядає наступним чином:

UltaHost – хостинг для сайтів, побудованих на платформі WordPress
Гарантія повернення грошей протягом 30 днів, необмежена пропускна здатність мережі та доступ до баз даних, безкоштовний захист від DDoS-атак; знижка 50% при покупці на термін 3 роки (варіанти об’ємів трафіку: 4 ТБ/5
<?php
/**
 * Plugin Name: 我的第一个插件
 * Plugin URI:  https://www.example.com/my-first-plugin
 * Description: 这是一个简短描述,介绍插件功能的句子。
 * Version:     1.0.0
 * Author:      你的名字
 * Author URI:  https://www.example.com
 * License:     GPL v2 or later
 * Text Domain: my-first-plugin
 * Domain Path: /languages
 */

Зокрема,Plugin Name Це обов’язково; інша інформація є необов’язковою, але рекомендується вказати. Особливо… Text DomainDomain PathВони призначені для підготовки плагінів до інтернаціоналізації (підтримки кількох мов). WordPress зчитує цю інформацію та відображає її на сторінці керування плагінами у своєму бекенді.

Створення локального середовища розробки та першого плагіна

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

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

Рекомендується використовувати локальні серверні інтегровані середовища, такі як Local by Flywheel, XAMPP або Laragon. Ці інструменти дозволяють одним кліком встановити необхідні для роботи WordPress компоненти – PHP, MySQL та веб-сервер. Крім того, вам знадобиться програмний інструмент для редагування коду, наприклад Visual Studio Code або PHPStorm, які надають функції підсвічування синтаксису, підказок під час написання коду та налагодження програм. Переконайтеся, що версія PHP, яку ви використовуєте, сумісна з сервером, на якому буде розміщуватися ваш сайт; зазвичай рекомендується використовувати PHP 7.4 або новіші версії.

Напишіть та активуйте простий плагін.

Тепер давайте створимо перший функціональний плагін. /wp-content/plugins/ У каталозі створіть нову папку під назвою my-first-pluginУ цьому папці створіть файл під назвою my-first-plugin.php Файл.

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

Копіюйте інформацію про плагін, згадану у попередньому розділі, на початок цього файлу. Далі ми додамо просту функцію: автоматичне додавання власного тексту наприкінці контенту статті. Для цього знадобляться “фільтри” (Filters) WordPress. Додайте наступний код під інформацією про плагін:

// 在文章内容后添加自定义文本
function myfp_add_footer_text( $content ) {
    // 仅对主循环中的单篇文章生效
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $custom_text = '<p><em>Дякуємо за читання! Ця стаття підтримується проектом “Мій перший плагін” („My First Plugin“).</em></p>';
        $content .= $custom_text;
    }
    return $content;
}
// 将函数挂载到 ‘the_content’ 过滤器上
add_filter( 'the_content', 'myfp_add_footer_text' );

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

Оволодіння ключовими технологіями розробки плагінів

Міцна розширюваність WordPress ґрунтується на кількох ключових концепціях: хуках (Hooks), API для налаштувань (Options API), власних типах статей (Custom Post Types, CPT) та операціях з базою даних. Оволодіння цими механізмами є основою для розробки більш складних рішень.

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

Глибоке розуміння механізмів взаємодії дій (actions) та фільтрів (filters)

Система хуків (Hook System) є основою для розробки плагінів для WordPress та складається з дій (Actions) та фільтрів (Filters). Дії-хуки виконуються у певних моментах (наприклад, під час завантаження верхньої частини сторінки чи збереження статті), що дає можливість виконати певні дії – наприклад, додати меню чи надіслати електронний лист. add_action() Функція для монтування.

Наприклад, додайте сторінку до меню адміністративного керування в бекенді:

function myfp_add_admin_menu() {
    add_menu_page(
        '我的插件设置', // 页面标题
        '我的插件',     // 菜单标题
        'manage_options', // 权限
        'myfp-settings',  // 菜单slug
        'myfp_settings_page', // 回调函数,用于显示页面内容
        'dashicons-admin-generic', // 图标
        20
    );
}
add_action( 'admin_menu', 'myfp_add_admin_menu' );

Фільтрові хаки дозволяють вам “модифікувати” дані. Вони перехоплюють їх перед тим, як вони будуть використані (наприклад, відображені в браузері або збережені в базі даних), і ви можете змінити їх та повернути нові значення. Саме так ми користувалися цими фільтровими хаками у на the_content Це просто фільтр-хук (filter hook).

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

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

Плагіни зазвичай потребують зберігання певних налаштувань, таких як ключі API, стан увімкнення/вимкнення функцій тощо. WordPress надає для цього відповідні інструменти та механізми. Options API Для легкого оброблення таких даних існують певні ключові функції. Серед них: add_option(), get_option(), update_option()delete_option()

Створіть просту сторінку налаштувань для використання цих функцій. Спочатку визначте функції, які будуть викликатися при натисканні певних пунктів меню. myfp_settings_page Щоб відобразити форму:

Міжсерверний віртуальний хостинг
Віртуальний хостинг $2.50 USD на місяць, перший місяць $0.1 USD за промокодом tryinterserver, 461 скрипт хмарних додатків, встановлення в один клік.
function myfp_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1>Налаштування мого плагіна.</h1>
        <form method="post" action="/uk/options.php/" data-trp-original-action="options.php">
            <?php
            settings_fields( 'myfp_settings_group' ); // 输出安全字段
            do_settings_sections( 'myfp-settings' );  // 输出设置部分
            submit_button(); // 输出提交按钮
            ?>
        <input type="hidden" name="trp-form-language" value="uk"/></form>
    </div>
    &lt;?php
}

Потім вам потрібно буде використати… register_setting(), add_settings_section()add_settings_field() Використовуйте такі функції, як `declare` та `initialize`, щоб оголосити та ініціалізувати ці параметри. Цей процес забезпечить безпечне зберігання даних. wp_options У таблиці.

Створення повного прикладу практичного плагіна

Ми об’єднаємо знання, отримані раніше, щоб створити трохи складніший, але практичний плагін – плагін для оцінки часу, необхідного для прочитання статті. Він буде відображати приблизний час читання під заголовком статті.

Створення основного файлу плагіна та функціональних модулів

Створити нову папку для плагінів post-reading-time і головний файл post-reading-time.phpЗаповніть стандартну інформацію про заголовок плагіна. Потім ми створимо основні функції для обчислення часу читання.

function prt_calculate_reading_time( $post_id ) {
    // 获取文章内容
    $content = get_post_field( 'post_content', $post_id );
    // 清除HTML标签和短代码,只计算文字
    $text = strip_tags( strip_shortcodes( $content ) );
    // 计算字数(中英文混合场景的简单处理)
    $word_count = mb_strlen( $text, 'UTF-8' );
    // 假设平均阅读速度为每分钟300字(可根据需要调整)
    $reading_speed = 300;
    // 计算分钟数,至少1分钟
    $minutes = floor( $word_count / $reading_speed );
    if ( $minutes < 1 ) {
        $minutes = 1;
    }
    // 返回包含时间的字符串
    return sprintf( _n( '约 %d 分钟读完', '约 %d 分钟读完', $minutes, 'post-reading-time' ), $minutes );
}

Відображення даних на передньому кінці (фронтенді) у поєднанні з системою адміністративного управління на задньому кінці (бекенді)

Далі нам потрібно вирішити, як відобразити це часове значення. Поширеним способом є його додавання до метаданих статті (під заголовком). the_content Це певні фільтри чи механізми, які надають можливість використання певних „хаків“ (hooks). У цьому випадку ми використовуємо більш підходящий тип дії (action hook). thesis_hook_before_post(Залежно від теми) або, у більш узагальненому вигляді, просто фільтрувати вміст статей.

Для більшої гнучкості ми створили скорочення (Shortcode) та невеликий інструмент (Widget), а також надали прості параметри налаштування для контролю автоматичного відображення цих елементів.

Спочатку зареєструйте короткий код:

function prt_reading_time_shortcode( $atts ) {
    $atts = shortcode_atts( array(
        'id' =&gt; get_the_ID(),
    ), $atts, 'reading_time' );

$time_text = prt_calculate_reading_time( $atts['id'] );
    return '<span class="reading-time">'. $time_text . '</span>'add_shortcode( 'reading_time', 'prt_reading_time_shortcode' );

Потім ми можемо автоматично додати отримані результати на початок тексту статті (за допомогою фільтрів):

function prt_prepend_to_content( $content ) {
    if ( is_single() && get_option( 'prt_auto_display', '1' ) == '1' ) {
        $time_html = '<div class="post-reading-time">' . prt_calculate_reading_time( get_the_ID() ) . '</div>';
        $content = $time_html . $content;
    }
    return $content;
}
add_filter( 'the_content', 'prt_prepend_to_content' );

Вам також потрібно створити параметр налаштувань у бекенді. prt_auto_displayКористувачам надається можливість вибрати, чи активувати функцію автоматичного відображення. Таким чином, плагін із повноцінним функціоналом та чіткою структурою готовий до використання.

підсумок

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

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

Які необхідні попередні знання для розробки плагінів для WordPress?

Вам потрібні міцні знання PHP-програмування, адже код плагінів переважно складається з коду на PHP. Крім того, необхідно мати базове розуміння HTML, CSS та JavaScript для роботи з фронтенд-представленням та взаємодією користувачів. Ознайомлення з основами MySQL допоможе краще зрозуміти способи зберігання та пошуку даних у WordPress. Найважливіше – звикнути до читання офіційного довідника розробників WordPress (Codex) та референсного посібника для розробників (Developer Reference).

Як гарантувати, що плагін, який я розробляю, є безпечним?

Безпека має надзвичайно важливе значення. Завжди перевіряйте та очищуйте дані, введені користувачами, а також ескапуйте результати обробки цих даних. Використовуйте механізми, надані WordPress (наприклад, нестандартні ідентифікатори типу nonce), щоб запобігти фальсифікації запитів між веб-сайтами (CSRF – Cross-Site Request Forgery). Під час формування запитів до бази даних обов’язково дотримуйтесь встановлених правил безпеки. $wpdb Методи, які надає клас (наприклад…) prepare()Використовуйте механізми, які запобігають вставці зловмисного коду (SQL injection), щоб уникнути небезпечних функцій. eval()Регулярно оновлюйте свої плагіни, щоб виправити відомі вразливості.

Де слід розміщувати плагіни?

Плагіни для WordPress мають бути розміщені на веб-сайті. /wp-content/plugins/ Файли плагінів зазвичай знаходяться у певному каталозі. Ви можете розмістити основний PHP-файл плагіна безпосередньо у корені цього каталогу, але більш стандартним підходом є створення окремого підкаталога для кожного плагіна та розміщення всіх відповідних файлів (PHP, JS, CSS, зображень тощо) у цьому підкаталозі. Це допомагає зберегти чітку структуру файлів та уникнути конфліктів з іншими плагінами.

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

Додавання сторінки налаштувань до плагіна зазвичай включає кілька кроків: по-перше, використовуються… add_action( ‘admin_menu’, ‘your_function’ ) Функція „hook“ дозволяє зареєструвати новий елемент меню або підменю для керування. Після цього у функції-поверненні (callback) виводиться HTML-форма сторінки. Далі використовується цей елемент меню для взаємодії з користувачем. register_setting()add_settings_section()add_settings_field() Використовуйте функції API для налаштувань (Settings API), щоб оголосити та пов’язати ваші поля налаштувань. Це автоматично обробить перевірку прав, перевірку на відповідність вимогам (наприклад, відповідність стандартам CE), а також збереження вибраних settings_fields()do_settings_sections() Функція виводить необхідні поля.

Що таке хаки (hooks), і чому вони настільки важливі?

Хаки (hooks) – це спеціальні точки в коді WordPress, які дозволяють плагінам та темам “вставлятися” у процес виконання основного коду системи. Вони поділяються на хаки дій (Actions) та хаки фільтрів (Filters). Хаки дій виконують ваш власний код під час певних подій, що дозволяє додавати нові функції. Хаки фільтрів дають можливість змінювати дані перед їх використанням чи збереженням. Система хаків є основою розширюваності WordPress; завдяки їй розробники можуть суттєво змінювати чи покращувати поведінку системи без необхідності модифікації основних файлів, що забезпечує її чистоту та сумісність з наступними версіями.