Как создать плагин для WordPress с нуля: практическое руководство

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

Почему стоит создавать собственный плагин для WordPress

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

  • Реализовать именно тот функционал, который нужен;
  • Оптимизировать работу сайта, исключив лишний код;
  • Гарантировать безопасность и стабильность без сторонних зависимостей;
  • Учиться и развиваться как разработчик WordPress.

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

Структура плагина: что нужно знать

Минимальная структура плагина очень простая – достаточно одного PHP-файла с шапкой (header), чтобы WordPress распознал его как плагин. Однако для удобства и масштабируемости лучше организовать файлы в отдельной папке.

Пример структуры:

wplog-custom-plugin/  
├── wplog-custom-plugin.php  
├── includes/  
│   └── functions.php  
└── assets/  
    ├── css/  
    └── js/

Главный файл плагина wplog-custom-plugin.php содержит метаданные и подключает остальные части. Папка includes – для вспомогательных функций, а assets — для стилей и скриптов.

Создаем базовый плагин: пример кода

Начнем с создания главного файла wplog-custom-plugin.php с минимальным необходимым кодом:

<?php
/**
 * Plugin Name: WPLoG Custom Plugin
 * Plugin URI: https://wplog.ru
 * Description: Пример простого плагина для WordPress с нуля
 * Version: 1.0
 * Author: WPLoG
 * License: GPLv2 or later
 */

// Безопасность: запрет прямого доступа
if (!defined('ABSPATH')) {
    exit;
}

// Подключаем дополнительные функции
require_once plugin_dir_path(__FILE__) . 'includes/functions.php';

// Инициализация плагина
add_action('init', 'wplog_custom_plugin_init');

function wplog_custom_plugin_init() {
    // Здесь можно регистрировать кастомные типы записей, таксономии и т.д.
}

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

Добавляем функционал: пример кастомного шорткода

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

В файле includes/functions.php добавим следующий код:

<?php

// Регистрируем шорткод [wplog_greeting]
add_shortcode('wplog_greeting', 'wplog_custom_plugin_greeting_shortcode');

function wplog_custom_plugin_greeting_shortcode($atts) {
    $atts = shortcode_atts(array(
        'name' => 'Гость',
    ), $atts, 'wplog_greeting');

    $date = date_i18n('j F Y');

    return '<div class="wplog-greeting">Привет, ' . esc_html($atts['name']) . '! Сегодня ' . esc_html($date) . '.</div>';
}

Теперь в любой записи или странице можно вставить [wplog_greeting name="Алексей"] и получить приветственное сообщение с текущей датой. Такой шорткод можно легко расширять и кастомизировать.

Подключаем стили и скрипты

Чтобы шорткод выглядел красиво, подключим CSS. В папке assets/css/ создайте файл style.css с простым стилем:

.wplog-greeting { 
    padding: 10px;
    background-color: #f0f8ff;
    border: 1px solid #cce4ff;
    border-radius: 5px;
    font-size: 16px;
    color: #004080;
}

Для подключения стилей добавьте в главный файл плагина:

add_action('wp_enqueue_scripts', 'wplog_custom_plugin_enqueue_styles');

function wplog_custom_plugin_enqueue_styles() {
    wp_enqueue_style('wplog-custom-style', plugin_dir_url(__FILE__) . 'assets/css/style.css');
}

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

Регистрация кастомного типа записи: пример и применение

Одной из популярных задач является добавление собственного типа контента. Например, создадим тип «Отзывы» (reviews), чтобы удобно собирать отзывы клиентов.

Добавьте в функцию инициализации плагина:

function wplog_custom_plugin_init() {
    $labels = array(
        'name'               => 'Отзывы',
        'singular_name'      => 'Отзыв',
        'menu_name'          => 'Отзывы',
        'name_admin_bar'     => 'Отзыв',
        'add_new'            => 'Добавить отзыв',
        'add_new_item'       => 'Добавить новый отзыв',
        'new_item'           => 'Новый отзыв',
        'edit_item'          => 'Редактировать отзыв',
        'view_item'          => 'Просмотреть отзыв',
        'all_items'          => 'Все отзывы',
        'search_items'       => 'Искать отзывы',
        'not_found'          => 'Отзывы не найдены',
        'not_found_in_trash' => 'Отзывы не найдены в корзине',
    );

    $args = array(
        'labels'             => $labels,
        'public'             => true,
        'publicly_queryable' => true,
        'show_ui'            => true,
        'show_in_menu'       => true,
        'query_var'          => true,
        'rewrite'            => array('slug' => 'reviews'),
        'capability_type'    => 'post',
        'has_archive'        => true,
        'hierarchical'       => false,
        'menu_position'      => 20,
        'supports'           => array('title', 'editor', 'author', 'thumbnail'),
    );

    register_post_type('wplog_review', $args);
}

Теперь в админке появится раздел «Отзывы», где можно добавлять и редактировать отзывы. Это удобный способ структурировать дополнительный контент.

Используем популярные плагины для расширения и отладки

Во время разработки плагина удобно использовать плагины для отладки и расширения:

  • Query Monitor — помогает отследить запросы, ошибки и хуки;
  • Debug Bar — расширяет панель отладки;
  • Code Snippets — позволяет безопасно добавлять куски кода без плагина;
  • Advanced Custom Fields (ACF) — для удобного создания полей в кастомных типах записей.

Эти инструменты значительно ускоряют разработку и помогают избегать типичных ошибок.

Итоги и советы по созданию плагинов

Создавая плагин для WordPress, всегда придерживайтесь стандартов кодирования и безопасности:

  • Используйте префиксы в названиях функций и переменных, чтобы избежать конфликтов (например, wplog_custom_plugin_*);
  • Проверяйте и фильтруйте входящие данные с помощью esc_html(), sanitize_text_field() и других функций безопасности;
  • Пишите документацию и комментарии к коду;
  • Тестируйте плагин на разных версиях WordPress и с популярными темами.

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

Как автоматически установить и настроить подключение к внешнему API в WordPress
04.04.2026
Как добавить автоматическое удаление старых transient в WordPress
31.03.2026
Как избежать проблем при использовании AJAX в WordPress
10.04.2026
Как установить ограничение на число категорий в WordPress
18.02.2026
Удаление изображений из библиотеки медиа WordPress по дате
22.02.2026