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

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

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

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

Для розробників вивчення створення плагінів є чудовим способом глибоко зрозуміти архітектуру WordPress. Ви познайомитеся з такими концепціями, як дії (actions) та хаки (hooks).add_actionФільтрові хаки (filter hooks)add_filterКороткі кодиadd_shortcodeОсновні концепції, такі як… Оволодіння цими знаннями дозволить вам не лише створювати плагіни, а й ефективніше налаштовувати існуючі теми та плагіни.

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

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

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

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

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

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

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

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

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

Ось приклад мінімізованого основного файлу плагіна; файл можна назвати…my-first-plugin.phpІ розмістіть його у папці, яку ви щойно створили:

<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://yourwebsite.com/my-first-plugin
 * Description:       这是一个用于学习的入门级WordPress插件。
 * Version:           1.0.0
 * Author:            你的名字
 * License:           GPL v2 or later
 */

// 防止直接访问此文件
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

Помістіть папку, яка містить цей файл, у відповідне місце.wp-content/pluginsПісля створення каталогу ви зможете побачити цей плагін на сторінці “Плагіни” у веб-адмініструванні WordPress та активувати його.

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

Створення першої ключової функції

Тепер давайте додамо до плагіна деякі функції. Ми створимо просту функцію, яка автоматично додає певний текст наприкінці контенту статті.

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

WordPress надає велику кількість фільтр-хуків (Filter Hooks), які дозволяють вам змінювати дані перед їх збереженням у базі даних чи відображенням у браузері. Щоб змінити вміст статті, ми можемо скористатися цими фільтр-хуками.the_contentФільтри.

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

hosting.com Віртуальний хостинг
Висока продуктивність завдяки процесорам AMD EPYC, SSD-накопичувачам NVMe і технології LiteSpeed, цілодобова експертна підтримка, розширені заходи безпеки, включаючи SSL, грубу силу, захист від шкідливих програм і DDoS, економія до 73%.
// 定义向文章内容追加文本的函数
function my_first_plugin_add_text_to_content( $content ) {
    // 确保只在主循环的单篇文章页面执行
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $additional_text = '<p><em>Дякуємо, що прочитали цю статтю! Ця стаття підтримується проектом “Мій перший плагін” („My First Plugin“).</em></p>';
        $content .= $additional_text;
    }
    return $content;
}
// 将函数挂载到‘the_content’过滤器上
add_filter( 'the_content', 'my_first_plugin_add_text_to_content' );

Ця функція спочатку виконує серію умовних перевірок, щоб переконатися, що додатковий текст з’являється лише на сторінках окремих статей, а не впливає на головну сторінку, архів чи інші сторінки. Після цього вона додає відповідний уривок користувацького HTML-коду до початкового контенту.$contentЗмінюється значення змінної, після чого повертається оновлений варіант даних.

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

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

Насамперед, використайтеadd_actionУ меню адміністратора додається підменю.

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

// 创建管理菜单
function my_first_plugin_add_admin_menu() {
    add_options_page(
        '我的第一个插件设置', // 页面标题
        '我的插件设置',       // 菜单标题
        'manage_options',     // 所需权限
        'my-first-plugin',    // 菜单slug
        'my_first_plugin_settings_page' // 显示页面的回调函数
    );
}
add_action( 'admin_menu', 'my_first_plugin_add_admin_menu' );

Далі визначається функція-повернення (callback function), яка відповідає за відображення сторінки з налаштуваннями.my_first_plugin_settings_pageА також обробіть логіку збереження форми:

// 设置页面的HTML内容
function my_first_plugin_settings_page() {
    ?&gt;
    <div class="wrap">
        <h2>Налаштування мого першого плагіна</h2>
        <form method="post" action="/uk/options.php/" data-trp-original-action="options.php">
            <?php
            settings_fields( 'my_first_plugin_settings_group' );
            do_settings_sections( 'my-first-plugin' );
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="uk"/></form>
    </div>
    &lt;?php
}

// 注册设置、区域和字段
function my_first_plugin_settings_init() {
    register_setting( &#039;my_first_plugin_settings_group&#039;, &#039;my_first_plugin_custom_text&#039; );

add_settings_section(
        &#039;my_first_plugin_section&#039;,
        &#039;自定义文本设置&#039;,
        null,
        &#039;my-first-plugin&#039;
    );

add_settings_field(
        &#039;my_first_plugin_text_field&#039;,
        &#039;要在文末添加的文本&#039;,
        &#039;my_first_plugin_text_field_render&#039;,
        &#039;my-first-plugin&#039;,
        &#039;my_first_plugin_section&#039;
    );
}
add_action( &#039;admin_init&#039;, &#039;my_first_plugin_settings_init&#039; );

// 渲染文本输入字段
function my_first_plugin_text_field_render() {
    $option = get_option( &#039;my_first_plugin_custom_text&#039;, &#039;感谢您阅读这篇文章!本文由“我的第一个插件”提供支持。&#039; );
    echo &#039;<textarea name="my_first_plugin_custom_text" rows="3" cols="50">' . esc_textarea( $option ) . '</textarea>';
}

Наостанок, змініть функцію додавання тексту так, щоб вона працювала з параметрами, які можна вибрати з списку опцій.my_first_plugin_custom_textЧитання вмісту з…

Міжсерверний віртуальний хостинг
Віртуальний хостинг $2.50 USD на місяць, перший місяць $0.1 USD за промокодом tryinterserver, 461 скрипт хмарних додатків, встановлення в один клік.
function my_first_plugin_add_text_to_content( $content ) {
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $custom_text = get_option( 'my_first_plugin_custom_text', '' );
        if ( ! empty( $custom_text ) ) {
            $additional_text = '<p><em>'. wp_kses_post($custom_text)'.'</em></p>';
            $content .= $additional_text;
        }
    }
    return $content;
}

Підготовка до безпеки, оптимізації та розповсюдження плагінів

Якісний плагін має не лише функціонувати коректно, але й бути безпечним, ефективним у використанні та простим у обслуговуванні.

Проверка даних, ескапування та безпека

Безпека є життєво важливою складовою розробки плагінів. Ніколи не довіряйте даним, введеним користувачем, або даним, отриманим безпосередньо з бази даних. Перед виведенням даних на сторінку їх необхідно обов’язково ескапувати. У попередньому коді миesc_textarea()На сторінці керування виконуйте ескапування вихідних даних та використовуйте відповідні функції для обробки тексту.wp_kses_post()На сторінці статті необхідно фільтрувати HTML-код, щоб дозволити проходження лише безпечних тегів, використовуваних у контенті повідомлень. Для обробки форм слід використовувати механізми, які надає WordPress – зокрема, функції перевірки даниsanitize_text_field()Використовуйте такі функції для очищення даних.

Організація коду та оптимізація продуктивності

Зі збільшенням кількості функцій плагінів стає складним керувати всім кодом, який знаходиться в одному основному файлі. Кращим підходом є розділення коду за функціями на окремі файли. Наприклад, ви можете створити…includes/admin/Директорія містить усі файли коду, пов’язані з інтерфейсом адміністрування.includes/public/Каталог містить код фронтенд-функцій.includes/class-*.phpМісце для зберігання визначень класів.

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

Готуєтеся до публікації свого плагіна?

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

підсумок

За допомогою цього посібника ми повністю пройшли процес створення WordPress-плагіна з нуля, який має всі необхідні функції та підтримку для керування. Ми вивчили базову структуру плагінів, способи взаємодії з ядром WordPress за допомогою дій (actions) та фільтрів (filters), процес створення сторінок для керування, а також почали розуміти важливість безпеки та організації коду плагінів. Суть розробки плагінів полягає у розумінні схеми їхньої роботи, заснованої на подіях (event-driven architecture), та навичці вставки власного коду у правильний момент. Виходячи з цього, ви можете продовжити досліджувати більш складні аспекти роботи плагінів – такі як створення власних типів статей, метаданих, кінцевих точок REST API, таблиць у базі даних тощо – і поступово створювати потужні, професійні плагіни.

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

Щоб розробляти плагіни для WordPress, необхідні такі базові знання:

Вам необхідно оволодіти основною граматикою мови програмування PHP, концепціями об’єктно-орієнтованого програмування, а також мати базові знання HTML, CSS та JavaScript. Добре буде, якщо ви знайомі з основними операціями та ключовими концепціями WordPress – такими як статті, сторінки, категорії тощо. Найважливіше – зрозуміти механізм гаків (Actions and Filters) у WordPress, адже саме вони є основним способом взаємодії плагінів з системою.

Яка різниця між функціональністю плагінів і тем, і як їх вибрати?

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

Чи можна створити кілька PHP-файлів у одному плагіні?

Цілком можливо, і для складних плагінів саме так і рекомендується робити. Ви можете розділити різні функціональні модулі на окремі файли, а потім згрупувати їх у головному файлі плагіна.require_onceinclude_onceВикористовуйте відповідні конструкції коду для їх введення. Хороша структура файлів сприяє організації коду та ефективній співпраці в команді.

Як налаштувати (діагностувати та виправити помилки) плагін, який я розробив?

У розробці для WordPress поширеним методом налагодження є увімкнення функцій для отримання детальної інформації про роботу системи.WP_DEBUGВи можете це зробити на веб-сайті.wp-config.phpУ файлі буде…define( 'WP_DEBUG', true );Це виведе PHP-помилки, попередження та сповіщення на екран. Більш безпечним способом буде налаштувати обидва параметри одночасно.WP_DEBUG_LOGtrueЗаписати помилку у…wp-content/debug.logФайл знаходиться у вказаному місці. Крім того, використання інструментів розробника браузера та додатків для моніторингу запитів (наприклад, Query Monitor) значно підвищує ефективність роботи під час налагодження програм.

Мій плагін має підтримувати різні версії WordPress.

Це залежить від вашої цільової аудиторії. Зазвичай рекомендується підтримувати принаймні дві попередні версії поточної основної версії WordPress. Ви можете ознайомитися з офіційними статистичними даними WordPress, щоб дізнатися про поширеність різних версій. У коді ви можете використовувати умовfunction_exists()Щоб перевірити, чи є певна функція або клас доступними для використання, а також забезпечити сумісність з попередніми версіями програми, використовуються певні механізми. Це особливо важливо для плагінів, оскільки вони часто містятьreadme.txtУ файлі необхідно чітко зазначити версію WordPress, для якої були проведені тести та яка підтвердила свою сумісність з вимогами.