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

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

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

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

Причины создать плагин могут быть разные: от добавления кастомного виджета до интеграции с внешними сервисами. Главное — понимать структуру и стандарты разработки, чтобы плагин корректно работал и не создавал конфликтов.

Структура плагина WordPress: с чего начать

Минимальный плагин — это папка с файлом PHP, в начале которого прописывается служебный блок с информацией о плагине. Рассмотрим базовую структуру:

wp_skins_plugin/  // папка плагина
  wp-skins-plugin.php  // основной файл плагина

В файле wp-skins-plugin.php обязательно указываем заголовок, чтобы WordPress увидел плагин:

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

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

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

Одним из простых способов расширить сайт — создать шорткод. Он позволит вставлять динамический контент в записи и страницы. Создадим шорткод [wpskins_hello], который выводит приветствие.

function wpskins_shortcode_hello() {
    return '<p>Привет от WP Skins!</p>';
}
add_shortcode('wpskins_hello', 'wpskins_shortcode_hello');

После подключения этого кода внутри плагина, при добавлении в контент шорткода [wpskins_hello] на странице появится строка "Привет от WP Skins!".

Объяснение работы шорткода

Функция wpskins_shortcode_hello возвращает HTML-код, который WordPress вставляет вместо шорткода. Хук add_shortcode регистрирует наш шорткод и связывает его с функцией.

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

Подключение стилей и скриптов в плагине

Для улучшения внешнего вида или интерактивности часто нужно подключать CSS и JS. Делать это нужно правильно, используя хуки WordPress, чтобы избежать конфликтов.

Пример подключения стилей и скриптов:

function wpskins_enqueue_assets() {
    wp_enqueue_style('wpskins-style', plugin_dir_url(__FILE__) . 'css/wpskins-style.css');
    wp_enqueue_script('wpskins-script', plugin_dir_url(__FILE__) . 'js/wpskins-script.js', array('jquery'), null, true);
}
add_action('wp_enqueue_scripts', 'wpskins_enqueue_assets');

В этом примере мы подключаем CSS и JS файлы из папки плагина. Функция plugin_dir_url(__FILE__) формирует правильный URL.

Создайте папки css и js внутри плагина и положите туда соответствующие файлы.

Пример простого CSS и JS

/* css/wpskins-style.css */
p { color: #2a9d8f; font-weight: bold; }

// js/wpskins-script.js
jQuery(document).ready(function($) {
    console.log('WP Skins plugin script loaded');
});

Локализация плагина: перевод на другие языки

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

Обновим шорткод с переводом:

function wpskins_shortcode_hello() {
    return '<p>' . esc_html__( 'Привет от WP Skins!', 'wpskins' ) . '</p>';
}

Для этого в заголовке плагина добавим Text Domain: wpskins, а тексты оборачиваем в функции __() или esc_html__(). Затем можно создать .pot-файл и переводы для других языков.

Отладка и тестирование плагина

Для отладки используйте следующие рекомендации:

  • Включите WP_DEBUG в wp-config.php для вывода ошибок.
  • Используйте error_log() для записи сообщений в лог.
  • Тестируйте плагин на локальном сервере или в отдельной среде, чтобы не ломать рабочий сайт.

Также полезно использовать плагины для отладки, например Debug Bar и Query Monitor.

Расширение плагина: добавляем виджет

Для примера добавим простой виджет, который выводит приветствие на боковой панели сайта.

class WP_Skins_Widget extends WP_Widget {
    function __construct() {
        parent::__construct(
            'wp_skins_widget',
            esc_html__('WP Skins Widget', 'wpskins'),
            array('description' => esc_html__('Простой виджет приветствия', 'wpskins'))
        );
    }

    public function widget($args, $instance) {
        echo $args['before_widget'];
        echo $args['before_title'] . apply_filters('widget_title', 'Приветствие от WP Skins') . $args['after_title'];
        echo '<p>Добро пожаловать на сайт!</p>';
        echo $args['after_widget'];
    }
}

function wpskins_register_widget() {
    register_widget('WP_Skins_Widget');
}
add_action('widgets_init', 'wpskins_register_widget');

После активации плагина этот виджет появится в списке доступных в разделе "Внешний вид —> Виджеты".

Заключение по созданию плагина

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

Этот базовый набор знаний позволит вам создавать надежные и удобные плагины, которые сделают ваш сайт уникальным и функциональным.

Как избежать конфликтов стилей WooCommerce и темы WordPress
30.04.2026
Как сделать динамическое меню в WordPress с изменяющимся активным пунктом
28.12.2025
Как создать динамические стили для пользователей в WordPress
06.02.2026
Как добавить уникальные стили для конкретных блоков в WordPress
28.02.2026
Как создать динамический скин для WordPress с помощью AJAX
14.01.2026