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

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

Чому варто обирати розробку додатків для WordPress?

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

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

Створення вашої першої структури плагіна

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

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

Створення основного файлу плагіна

Перше, що вам потрібно зробити, – це створити головний файл плагіна. Цей файл зазвичай називається так само, як і плагін. Наприклад: my-first-plugin.phpНа початку цього файлу ви повинні додати стандартний коментар із описом плагіна.

UltaHost – хостинг для сайтів, побудованих на платформі WordPress
Гарантія повернення грошей протягом 30 днів, необмежена пропускна здатність мережі та доступ до баз даних, безкоштовний захист від DDoS-атак; знижка 50% при покупці на термін 3 роки (варіанти об’ємів трафіку: 4 ТБ/5
<?php
/**
 * Plugin Name:       我的第一个自定义插件
 * Plugin URI:        https://yourwebsite.com/my-first-plugin
 * Description:       这是一个用于学习的 WordPress 自定义插件示例。
 * Version:           1.0.0
 * Author:            你的名字
 * Author URI:        https://yourwebsite.com
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 * Domain Path:       /languages
 */

Цей коментар є своєрідним “паспортом” плагіна. У ньому міститься вся необхідна інформація про плагін. Plugin NameНазва плагіна є єдиним обов’язковим полем; інші поля призначені для надання додаткової інформації. Сторінка “Плагіни” в оболонці WordPress зчитує цю інформацію та відображає її користувачеві. Після створення цього файлу необхідно розмістити його у каталозі встановлення WordPress. /wp-content/plugins/ Файл знаходиться у папці. Ви можете створити підпапку під назвою “my-first-plugin” та розмістити там головний файл. Тепер, після входу в обліковий запис WordPress у режимі адміністратора, ви зможете побачити цей плагін у списку плагінів та активувати його. Хоча наразі він не має жодних функцій, ви вже зробили перший крок на шляху до успіху.

Організуйте ваші файли плагінів.

Зі збільшенням кількості функцій буде складно підтримувати весь код, який знаходиться в одному основному файлі. Добра структура організації файлів має вирішальне значення. Типовий плагін може містити наступні каталоги:
* /includes/Містить файли з визначеннями основних функцій та класів.
* /admin/Зберігаються файли, пов’язані з інтерфейсом адміністративного керування в бекенді.
* /public/Зберігаються файли з фронтенд-функціями, призначені для відвідувачів веб-сайту.
* /assets/Для зберігання статичних ресурсів, таких як JavaScript, CSS та зображення.
* /languages/Місце для зберігання файлів з міжнародними перекладами (.po/.mo).

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

Розуміння основних концепцій розробки WordPress: хаки (hooks) та фільтри (filters)

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

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

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

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

Ось простий приклад використання: wp_footer Цей функціонал дозволяє виводити повідомлення у спільній зоні внизу сторінки веб-сайту. Вам потрібно додати наступний код до основного файлу вашого плагіна.

Функція myplugin_add_footer_text() {
    echo '<p style="text-align:center;">Дякую, що використовуєте мій перший плагін!</p>';
}
add_action( 'wp_footer', 'myplugin_add_footer_text' );

Тут,myplugin_add_footer_text Це функція, яку ми самі визначили.add_action() Функція “прив’язує” цю функцію до… wp_footer Цей механізм працює наступним чином: коли WordPress виконує обробку футера сторінки, наша функція автоматично викликається.

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

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

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

Наведений нижче приклад демонструє, як це можна зробити. the_content Фільтр, який автоматично додає рядок з користувацьким текстом наприкінці всього контенту статей та сторінок.

function myplugin_append_to_content( $content ) {
    $custom_text = '<div class="myplugin-note"><p><em>Цей текст покращено для відображення завдяки моєму власному плагіну.</em></p></div>';
    // 仅在主循环的单篇文章页面添加
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        return $content . $custom_text;
    }
    return $content;
}
add_filter( 'the_content', 'myplugin_append_to_content' );

функція myplugin_append_to_content Отримати оригінальний $contentМи використовуємо умовні перевірки, щоб переконатися, що текст додається лише там, де це необхідно, а потім повертаємо оновлений вміст.add_filter() Функція завершила процес реєстрації.

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

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

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

Додати верхній меню керування

Ви можете додати новий верхній меню-пункт до лівого бічного меню в бекенді WordPress для свого плагіна. Це можна зробити наступним чином: add_menu_page() Функції реалізуються певним чином. Ми зазвичай… admin_menu У цьому хендлері дій викликається ця функція.

Міжсерверний віртуальний хостинг
Віртуальний хостинг $2.50 USD на місяць, перший місяць $0.1 USD за промокодом tryinterserver, 461 скрипт хмарних додатків, встановлення в один клік.
function myplugin_add_admin_menu() {
    add_menu_page(
        '我的插件设置', // 页面标签
        '我的插件',     // 菜单标题
        'manage_options', // 所需权限
        'myplugin-settings', // 菜单 Slug
        'myplugin_settings_page_html', // 显示页面内容的回调函数
        'dashicons-admin-generic', // 图标(可选)
        80 // 菜单位置(可选)
    );
}
add_action( 'admin_menu', 'myplugin_add_admin_menu' );

Створення вмісту сторінки налаштувань

Зараз нам потрібно визначити вищезгадану функцію-повернення (callback function). myplugin_settings_page_htmlЦей код використовується для рендерингу вмісту HTML-сторінки з налаштуваннями. Ось проста версія цього коду:

Функція myplugin_settings_page_html() {
    // Перевірка прав користувача
    якщо ( ! текучий користувач може керувати опціями ) {
        повертатися;
    }
    ?&gt;
    <div class="wrap">
        <h1><p><strong>  <p><strong></h1>
        <form action="/uk/options.php/" method="post" data-trp-original-action="options.php">
            <?php
            // 输出设置字段和非ce字段
            settings_fields( 'myplugin_options' );
            do_settings_sections( 'myplugin-settings' );
            submit_button( '保存设置' );
            ?>
        <input type="hidden" name="trp-form-language" value="uk"/></form>
    </div>
    &lt;?php
}

Ця функція створює форму, яка відповідає стилю інтерфейсу WordPress-бекенду. Для повного оброблення налаштувань вам також знадобиться використовувати інші компоненти чи функції системи. register_setting(), add_settings_section()add_settings_field() Використовуючи такі функції для визначення конкретних параметрів налаштувань, створюється повноцінний потік роботи API “Settings”. Це рекомендований спосіб безпечного зберігання та отримання параметрів плагінів.

Реалізація функції плагіна для підрахунку кількості переглядів статей

Давайте поєднаємо всі ці концепції та створимо практичну функцію: підрахунок та відображення кількості переглядів кожної статті.

Створити поля бази даних та зберегти в них дані

По-перше, нам потрібно створити місце для зберігання кількості переглядів статті під час її публікації. Зазвичай для цього використовується функція пост-метаданих (post meta) у WordPress. Ми можемо скористатися цією можливістю, щоб збирати та відстежувати інформацію про кільк add_post_meta Функція існує, але більш елегантним способом є перевіряти та оновлювати це значення під час перегляду статті.

function myplugin_track_post_views( $post_id ) {
    if ( ! is_single() ) {
        return;
    }
    if ( empty( $post_id ) ) {
        global $post;
        $post_id = $post->ID;
    }
    // 获取当前浏览次数
    $count = get_post_meta( $post_id, 'myplugin_post_views', true );
    // 如果为空,初始化为0
    $count = $count ? absint( $count ) : 0;
    $count++;
    // 更新数据库
    update_post_meta( $post_id, 'myplugin_post_views', $count );
}
// 在模板重定向时触发,确保只对真实访客计数
add_action( 'template_redirect', 'myplugin_track_post_views' );

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

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

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

$post_id = absint( $atts['id'] );
    $views = get_post_meta( $post_id, 'myplugin_post_views', true );
    $views = $views ? $views : 0;

return '<span class="myplugin-view-count">Кількість переглядів: '. esc_html($views)'.'</span>'php
add_shortcode('myplugin_views', 'myplugin_display_post_views_shortcode');

Тепер користувачам достатньо лише ввести скорочений код у редакторі статей. [myplugin_views]Або ж ви можете додати до свого сайту невеликий додаток (“трюк”), який буде використовувати певний „короткий код“. Введення цього коду дозволить відобразити на сторінці кількість переглядів відповідної статті. Цей повний приклад охоплює весь процес: зберігання даних („хаки“), їх пошук та їх відображення на користувацькому інтерфей

підсумок

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

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

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

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

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

Як налаштувати та виправити помилки у своєму WordPress-плагіні?

По-перше, переконайтеся, що у вас є все необхідне для… wp-config.php У файлі увімкніть режим налагодження WordPress. WP_DEBUG Стала величина встановлена як trueЦе виведе PHP-помилки та попередження на екран. Далі, використовуйте… error_log() Функція записує інформацію про налагодження до журналу помилок сервера, що є дуже надійним способом налагодження програми. Для складних змінних можна використовувати цей підхід у поєднанні з іншими методами. print_r()var_dump()error_log()Крім того, використовуйте інструменти розробника браузера (F12) для налагодження проблем з JavaScript та CSS на передньому кінці веб-додатку.

Як мій плагін може бути сумісним з різними версіями WordPress?

Під час розробки необхідно регулярно переглядати офіційний довідник розробників WordPress, щоб ознайомитися зі змінами у функціях та хаках (hooks) між різними версіями системи. function_exists()version_compare() Використовуйте умовні оператори для перевірки наявності певної функції чи можливості, щоб запропонувати альтернативні рішення, які підтримують старі версії програмного забезпечення. Чітко вказуйте діапазон версій WordPress, з якими ваш плагін сумісний, у описі плагіна. Найкращою практикою є постійне тестування плагіна у різних версіях WordPress.

Що потрібно враховувати під час розробки комерційних плагінів?

Під час розробки комерційних плагінів безпека, якість коду та користувацький досвід мають бути на першому місці. Вам необхідно реалізувати надійну та безпечну систему автентифікації користувачів (наприклад, з використанням ключів ліцензій). Дуже важливо надавати чітку та своєчасну документацію для користувачів, а також технічну підтримку. Обов’язково дотримуйтеся офіційних рекомендацій WordPress щодо розробки плагінів та умов ліцензійного договору GPL. Розгляньте можливість використання професійних платформ, таких як Freemius чи Easy Digital Downloads, для обробки продажів, публікації оновлень та обслуговування запитів користувачів.