Как создать свой плагин для WordPress с примерами кода

Создание собственного плагина для WordPress — это отличный способ расширить функциональность вашего сайта и получить полный контроль над его поведением. В этой статье мы подробно разберем, как написать простой, но функциональный плагин с нуля, рассмотрим структуру, подключение хуков и фильтров, а также приведем практические примеры кода. Статья будет полезна как начинающим разработчикам, так и тем, кто хочет углубить знания о внутреннем устройстве WordPress.

Что такое плагин WordPress и зачем создавать свой

Плагин — это набор PHP-файлов, которые расширяют возможности WordPress без изменения ядра системы. Плюсы создания собственного плагина:

  • Вы пишете только нужный вам функционал
  • Обеспечиваете стабильность и безопасность сайта
  • Легко обновлять и масштабировать
  • Избегаете конфликтов с темами и другими плагинами

Если вам требуется уникальная функциональность, которую не покрывают существующие расширения, создание своего плагина — лучший выбор.

Структура простого плагина WordPress

Минимально для работы плагина нужен один PHP-файл с заголовком, который описывает плагин. Например, создадим файл wpid-my-plugin.php в папке wp-content/plugins/wpid-my-plugin/:

<?php
/*
Plugin Name: WPID My Plugin
Plugin URI: https://wpid.ru
Description: Пример простого плагина для WordPress
Version: 1.0
Author: WPID
Author URI: https://wpid.ru
License: GPL2
*/

// Защита от прямого доступа
if (!defined('ABSPATH')) {
    exit;
}

// Код плагина здесь

Этот заголовок нужен WordPress для отображения плагина в админке. После этого плагин можно активировать.

Подключение действий (Actions) и фильтров (Filters)

Основной механизм взаимодействия с WordPress — хуки. Пример регистрации функции, которая срабатывает при инициализации:

add_action('init', 'wpid_myplugin_init');

function wpid_myplugin_init() {
    // Ваш код инициализации
}

Аналогично, фильтры позволяют изменять данные, например, изменить заголовок страницы:

add_filter('the_title', 'wpid_myplugin_change_title');

function wpid_myplugin_change_title($title) {
    return 'WPID: ' . $title;
}

Пример плагина: создание кастомного шорткода

Шорткоды позволяют вставлять динамический контент в посты и страницы. Создадим простой шорткод, который выводит приветствие с текущей датой.

add_shortcode('wpid_greeting', 'wpid_myplugin_greeting_shortcode');

function wpid_myplugin_greeting_shortcode($atts) {
    $atts = shortcode_atts(array(
        'name' => 'гость'
    ), $atts, 'wpid_greeting');

    $date = date_i18n('j F Y');
    return '<p>Здравствуйте, ' . esc_html($atts['name']) . '! Сегодня ' . $date . '.</p>';
}

Использование: в редакторе WordPress вставьте [wpid_greeting name="Иван"] — и увидите персонализированное приветствие.

Добавление настроек плагина в админку

Для удобства пользователей стоит добавить страницу настроек. Используем меню и форму настроек:

add_action('admin_menu', 'wpid_myplugin_admin_menu');

function wpid_myplugin_admin_menu() {
    add_options_page(
        'Настройки WPID My Plugin',
        'WPID My Plugin',
        'manage_options',
        'wpid-my-plugin',
        'wpid_myplugin_settings_page'
    );
}

function wpid_myplugin_settings_page() {
    if (!current_user_can('manage_options')) {
        return;
    }

    if (isset($_POST['wpid_myplugin_save'])) {
        check_admin_referer('wpid_myplugin_settings');
        update_option('wpid_myplugin_text', sanitize_text_field($_POST['wpid_myplugin_text']));
        echo '<div class="updated">Настройки сохранены.</div>';
    }

    $text = get_option('wpid_myplugin_text', '');
    ?>
    <div class="wrap">
        <h1>Настройки WPID My Plugin</h1>
        <form method="post" action="">
            <?php wp_nonce_field('wpid_myplugin_settings'); ?>
            <table class="form-table">
                <tr valign="top">
                    <th scope="row">Текст приветствия</th>
                    <td><input type="text" name="wpid_myplugin_text" value="<?php echo esc_attr($text); ?>" size="50" /></td>
                </tr>
            </table>
            <p class="submit"><input type="submit" name="wpid_myplugin_save" class="button-primary" value="Сохранить" /></p>
        </form>
    </div>
    <?php
}

Так пользователь сможет менять параметры плагина через удобный интерфейс.

Советы по безопасности и оптимизации плагинов WordPress

При разработке важно:

  • Использовать esc_html(), esc_attr() и другие функции экранирования для вывода данных
  • Проверять права доступа с помощью current_user_can()
  • Использовать check_admin_referer() для защиты форм от CSRF
  • Минимизировать запросы к базе данных, кешировать результаты
  • Избегать прямых запросов к $_POST и $_GET без проверки

Пример безопасного вывода данных

echo '<p>' . esc_html($user_input) . '</p>';

Полезные плагины для разработки и отладки

Для создания и отладки плагинов рекомендую следующие расширения:

  • Query Monitor — для мониторинга запросов к базе, ошибок и хуков
  • Debug Bar — удобный бар отладки в админке
  • Log Deprecated Notices — помогает отслеживать устаревшие функции
  • WPIDE — встроенный редактор кода с подсветкой синтаксиса

Они значительно упростят процесс разработки и помогут избежать ошибок.

Итог

Создание собственного плагина в WordPress — это несложно, если понимать базовые принципы работы с хуками, фильтрами и структурой плагина. Используйте приведенные примеры как стартовую точку, обязательно соблюдайте меры безопасности и оптимизации. Такой подход поможет вам создавать надежные и удобные расширения для вашего сайта на WordPress.

Как удалить метаданные из постов WordPress для оптимизации и безопасности
15.11.2025
Как отключить эмодзи в WordPress без потери функционала
13.12.2025
Как добавить дополнительное поле в форму регистрации WordPress
22.12.2025
Как удалить неиспользуемые файлы из медиабиблиотеки WordPress без повреждения сайта
19.12.2025
WooCommerce: как автоматически отключить товар после продажи
26.05.2026