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

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

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

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

Перш ніж почати розробку плагіна для WordPress, необхідно створити стабільне та ефективне локальне середовище для розробки. Ми рекомендуємо використовувати такі інструменти, як Local by Flywheel, Laragon чи Docker, щоб швидко налаштувати середовище для роботи з WordPress, яке включає PHP, MySQL, Apache чи Nginx. Це дозволить вам проводити тести та налагодження у безпечному, ізольованому середовищі.

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

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

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

У цьому папці створіть головний файл плагіна, який зазвичай називається самою назвою плагіна. my-first-plugin.phpКожен плагін має містити стандартні коментарі у вигляді заголовка плагіна – це єдиний спосіб, яким WordPress може ідентифікувати інформацію про плагін.

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:      你的名字
 * License:     GPL v2 or later
 * Text Domain: my-first-plugin
 */

Після збереження цього файлу увійдіть у панель керування WordPress (“WordPress Dashboard”) та перейдіть на сторінку „Плагіни“ („Plugins“). Ви повинні побачити свій плагін у списку плагінів. Ви можете активувати його так само, як і інші плагіни. Хоча наразі він не має жодних функцій, ви вже зробили перший крок у правильному напрямку. Для подальшого розроблення рекомендується створити чітку структуру каталогів у папці з плагінами. admin/(Код, пов’язаний з бекендом)public/(Код, пов’язаний з фронтендом)includes/(Корисні функції та бібліотеки), а також для зберігання ресурсів JavaScript та CSS assets/ Файлова папка.

Основні концепції розробки: хаки та дії (Core Development Concepts: Hooks and Actions)

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

Розуміння механізмів виконання дій (action hooks)

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

Використовуйте add_action() Функція дозволяє прикріпити вашу власну функцію до певного „хака“ (hook). Основна синтаксис такої функції виглядає наступним чином:add_action( ‘hook_name’, ‘your_function_name’, priority, accepted_args );Давайте додамо рядок з користувацьким текстом у футер сайту.

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

Функція myplugin_add_footer_text() {
    echo '<p id="custom-footer">Дякуємо, що використовуєте наш веб-сайт! Цей контент був доданий завдяки моєму плагіну.</p>';
}
add_action( ‘wp_footer’, ‘myplugin_add_footer_text’ );

Після активації плагіна з вищезгаданим кодом ви побачите, що цей текст було додано до області футера на передньому інтерфейсі веб-сайту. Це типовий приклад використання “дій-хаків” (action hooks): код виконується у певному місці, не змінюючи початкових даних, а лише виконує операції виведення чи виконання певних дій.

Опанування фільтрів-хуків (filter hooks)

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

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

hosting.com Віртуальний хостинг
Висока продуктивність завдяки процесорам AMD EPYC, SSD-накопичувачам NVMe і технології LiteSpeed, цілодобова експертна підтримка, розширені заходи безпеки, включаючи SSL, грубу силу, захист від шкідливих програм і DDoS, економія до 73%.
function myplugin_modify_title( $title ) {
    // 确保只在主循环且在前端单篇文章页面修改
    if ( is_single() && in_the_loop() ) {
        return $title . ‘ - 精彩内容’;
    }
    return $title;
}
add_filter( ‘the_title’, ‘myplugin_modify_title’ );

У цьому прикладі,the_title Фільтр відобразить заголовок поточної статті. $title Функція, яка передається вам myplugin_modify_titleПісля того, як ви зміните початковий текст та повернете новий рядок, WordPress використає це оновлене значення для відображення. Розуміння та вміле використання дій (actions) та фільтрів (filters) є ключовими для розкриття безмежних можливостей налаштування WordPress.

Створення функцій плагіна: додавання меню керування та параметрів

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

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

Ви можете використовувати ці можливості. add_menu_page() Функція додає до вашого плагіна верхній елемент меню. Ця функція визначає заголовок меню, необхідні права доступу, URL-адресу тощо, а також пов’язує його з керувальною функцією (колбек-функцією), яка відповідає за відображення вмісту стор

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

function myplugin_add_admin_menu() {
    add_menu_page(
        ‘我的插件设置’, // 页面标题
        ‘我的插件’, // 菜单标题
        ‘manage_options’, // 所需权限(管理员)
        ‘myplugin-settings’, // 菜单 Slug
        ‘myplugin_display_settings_page’, // 显示页面的函数
        ‘dashicons-admin-generic’, // 菜单图标(Dashicon)
        100 // 菜单位置
    );
}
add_action( ‘admin_menu’, ‘myplugin_add_admin_menu’ );

function myplugin_display_settings_page() {
    ?&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_group’ );
            do_settings_sections( ‘myplugin-settings’ );
            submit_button( ‘保存设置’ );
            ?>
        <input type="hidden" name="trp-form-language" value="uk"/></form>
    </div>
    &lt;?php
}

Додайте цей код до свого плагіна, і після його активації ви побачите на лівій стороні панелі керування WordPress новий пункт меню під назвою “Мої плагіни”. Натисніть на нього, щоб перейти до відповідної частини інтерфейсу, де ви зможете керув myplugin_display_settings_page Сторінка, отримана завдяки виконанню функції.

Використовуйте API налаштувань для реєстрації параметрів.

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

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

По-перше, вам потрібно використати… register_setting() Зареєструйте свої групи налаштувань та поля, використовуючи… add_settings_section() Додайте область налаштувань та використовуйте її для зміни параметрів системи. add_settings_field() Додайте конкретні поля.

function myplugin_register_settings() {
    // 注册一组设置,数据将保存在 `myplugin_options` 选项中
    register_setting(
        ‘myplugin_options_group’, // 设置组名,与 settings_fields() 对应
        ‘myplugin_options’, // 选项名
        ‘myplugin_sanitize_callback’ // 数据清理回调函数(可选但推荐)
    );

// 添加一个设置区域
    add_settings_section(
        ‘myplugin_main_section’,
        ‘主要设置’,
        null, // 区域描述的回调函数
        ‘myplugin-settings’ // 页面 Slug
    );

// 在区域中添加一个文本字段
    add_settings_field(
        ‘myplugin_text_field’,
        ‘欢迎语’,
        ‘myplugin_text_field_render’, // 渲染字段输入框的函数
        ‘myplugin-settings’,
        ‘myplugin_main_section’
    );
}
add_action( ‘admin_init’, ‘myplugin_register_settings’ );

function myplugin_text_field_render() {
    $options = get_option( ‘myplugin_options’ );
    $value = $options[‘myplugin_text_field’] ?? ‘’;
    ?>
    <input type=“text” name=“myplugin_options[myplugin_text_field]” value=“<?php echo esc_attr( $value ); ?>”>
    <?php
}

function myplugin_sanitize_callback( $input ) {
    // 清理和验证输入数据
    $sanitized_input = [];
    if ( isset( $input[‘myplugin_text_field’] ) ) {
        $sanitized_input[‘myplugin_text_field’] = sanitize_text_field( $input[‘myplugin_text_field’] );
    }
    return $sanitized_input;
}

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

Випуск та підтримка плагінів

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

Інтернаціоналізація плагінів

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

По-перше, змініть усі рядки у вашому коді.

// 在插件头部注释中,确保 Text Domain 正确
// 在代码中
function myplugin_display_settings_page() {
    ?&gt;
    <h1><?php _e( ‘我的插件设置’, ‘my-first-plugin’ ); ?></h1>
    &lt;?php
}

Потім, використовуючи інструменти на кшталт Poedit, скануйте код вашого плагіна, щоб отримати необхідні дані для його оновлення чи покращення. .pot(Шаблон) Файл, створений для основної мови (наприклад, англійської). .po І після компіляції .mo Файли. Розмістіть ці мовні файли у плагіні. languages/ У папці знаходяться всі необхідні файли для перекладу. WordPress автоматично завантажує відповідні переклади відповідно до налаштувань мови сайту.

Забезпечення безпеки та продуктивності коду

Перед публікацією обов’язково перевірте безпеку коду. Для всіх даних, введених користувачами, та отриманих у відповідь, використовуйте відповідні функції очищення від WordPress. esc_html(), esc_attr(), sanitize_text_field()wp_kses_post()Під час виконання запитів до бази даних використовуються… $wpdb Методи класу WP_QueryУникайте безпосереднього з’єднання SQL-запитів, щоб запобігти атакам типу вставки (ин’єкції).

Водночас зверніть увагу на оптимізацію продуктивності. Раціонально використовуйте функції-„хвилки“ (hooks), щоб уникнути виконання великої кількості непотрібних операцій під час кожного завантаження сторінки. Для складних результатів запитів розгляньте можливість використання API тимчасового кешування (Transients) у WordPress для їх зберігання. set_transient()get_transient()

Наостанок, дотримуйтеся офіційних стандартів розробки плагінів та структури каталогу WordPress, створюйте чіткі документаційні матеріали та файли типу README. Ви можете відправити свій плагін до офіційного каталогу плагінів на сайті WordPress.org, щоб користувачі могли легко знайти та встановити його, а також отримувати автоматичні оновлення.

підсумок

Розробка плагінів для WordPress – це процес, який починається з розуміння основної структури системи, поступового опанування механізмів взаємодії плагінів з основною системою (хаків), створення інтерфейсів керування, а завершується створенням надійних та інтернаціоналізованих плагінів. У цій статті ви дізналися, як створити перший плагін з нуля, як розширити його функціонал за допомогою хаків дій (actions) та фільтрів (filters), як сконструювати професійні сторінки налаштувань за допомогою API Settings, а також як підготувати плагін до публікації. Пам’ятайте: ключовим є практика – почніть з простої ідеї, поступово вдосконалюйте свій плагін, повною мірою використовуючи величезний API та ресурси спільноти WordPress, і ви зможете створити потужний та професійний плагін, який дозволить глибоко налаштувати ваш веб-сайт чи навіть створити цінний продукт.

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

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

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

У чому різниця між функціями плагінів та тем? Коли варто розробляти плагіни?

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

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

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

Як мій плагін може працювати взаємодіяти з іншими плагінами?

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

Як додати до свого плагіна власні таблиці бази даних?

Хоча WordPress надає… wp_options Це налаштування стосуються зберігання даних у таблицях, але для великих обсягів структурованих даних використання власних таблиць баз даних забезпечує кращу продуктивність. Ви можете скористатися функціями активації плагінів (за допомогою відп register_activation_hook() У функції реєстрації (function registration) необхідно написати SQL-код для створення таблиці. Обов’язково використовуйте відповідні конструкції та команди для роботи з базою даних. $wpdb->prefix Отримайте правильний префікс та використовуйте його. dbDelta() Існує функція для виконання операцій створення чи оновлення таблиць, яка може інтелектуально враховувати відмінності у їхній структурі. Крім того, необхідно продумати механізми очищення цих даних після видалення плагіна, надаюч