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

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

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

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

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

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

Структура плагина WordPress: минимальный набор файлов

Плагин в WordPress — это папка с PHP-файлом (а зачастую и с дополнительными файлами), которая размещается в директории wp-content/plugins/. Минимальный плагин — это один PHP-файл с заголовком.

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

wplock-greeting/  (папка плагина)
wplock-greeting.php  (главный файл плагина)

В файле wplock-greeting.php должен быть заголовок, который WordPress распознает:

<?php
/*
Plugin Name: WPLock Greeting
Plugin URI: https://wplock.ru
Description: Простой плагин для вывода приветствия через шорткод.
Version: 1.0
Author: WPLock
Author URI: https://wplock.ru
*/

Без этого заголовка плагин не отобразится в списке установленных.

Регистрация шорткода: пример кода и объяснение

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

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

function wplock_greeting_shortcode($atts) {
    $atts = shortcode_atts(
        array(
            'name' => 'Гость',
        ),
        $atts,
        'wplock_greeting'
    );
    return '<p>Привет, ' . esc_html($atts['name']) . '! Добро пожаловать на сайт.</p>';
}
add_shortcode('wplock_greeting', 'wplock_greeting_shortcode');

Объяснение:

  • shortcode_atts задает стандартные значения атрибутов — в нашем случае имя по умолчанию «Гость».
  • Функция возвращает HTML с приветствием, используя esc_html для безопасности вывода.
  • add_shortcode регистрирует шорткод [wplock_greeting], который можно вставить в пост или страницу.

Пример использования в контенте:

[wplock_greeting name="Иван"]

В результате на странице появится: Привет, Иван! Добро пожаловать на сайт.

Добавление административной страницы плагина

Чтобы расширить плагин, можно добавить страницу настроек в админ-панель WordPress. Для этого используем хук admin_menu.

function wplock_add_admin_menu() {
    add_menu_page(
        'WPLock Greeting', // Заголовок страницы
        'WPLock Greeting', // Название меню
        'manage_options',  // Возможность доступа
        'wplock_greeting', // Слаг меню
        'wplock_render_admin_page', // Функция вывода
        'dashicons-smiley', // Иконка
        100 // Позиция
    );
}
add_action('admin_menu', 'wplock_add_admin_menu');

function wplock_render_admin_page() {
    if (!current_user_can('manage_options')) {
        return;
    }
    echo '<div class="wrap"><h1>Настройки WPLock Greeting</h1><p>Здесь можно добавить настройки плагина.</p></div>';
}

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

Безопасность и стандарты кодирования в плагинах WordPress

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

  • Используйте префиксы в именах функций и переменных, чтобы избежать конфликтов с другими плагинами (в нашем случае wplock_).
  • Обрабатывайте и фильтруйте входящие данные, например, атрибуты шорткодов через shortcode_atts и esc_html.
  • Проверяйте права доступа пользователей перед выводом административных страниц.
  • Используйте WordPress API для добавления меню, настроек, AJAX и других функций.

Соблюдение этих правил не только улучшит качество кода, но и обеспечит стабильность и безопасность сайта.

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

Еще один способ расширить плагин — создать виджет, который можно разместить в сайдбаре. Ниже пример простого виджета с приветствием:

class WPLock_Greeting_Widget extends WP_Widget {
    public function __construct() {
        parent::__construct(
            'wplock_greeting_widget',
            'WPLock Greeting',
            array('description' => 'Приветственный виджет')
        );
    }

    public function widget($args, $instance) {
        echo $args['before_widget'];
        $name = !empty($instance['name']) ? $instance['name'] : 'Гость';
        echo '<p>Привет, ' . esc_html($name) . '!</p>';
        echo $args['after_widget'];
    }

    public function form($instance) {
        $name = !empty($instance['name']) ? $instance['name'] : '';
        ?>
        <p>
            <label for="<?php echo esc_attr($this->get_field_id('name')); ?>">Имя:</label>
            <input class="widefat" id="<?php echo esc_attr($this->get_field_id('name')); ?>" name="<?php echo esc_attr($this->get_field_name('name')); ?>" type="text" value="<?php echo esc_attr($name); ?>" />
        </p>
        <?php
    }

    public function update($new_instance, $old_instance) {
        $instance = array();
        $instance['name'] = (!empty($new_instance['name'])) ? sanitize_text_field($new_instance['name']) : '';
        return $instance;
    }
}
add_action('widgets_init', function() {
    register_widget('WPLock_Greeting_Widget');
});

Этот виджет можно добавить в любую область виджетов сайта и настроить имя пользователя через админку.

Заключение

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

Практикуйтесь, изучайте документацию WordPress и улучшайте свои навыки! Если нужно, на сайте WPLock.ru вы всегда найдете свежие руководства и примеры.

Как использовать плагин WPRemark для отзывов в WordPress
11.01.2026
Как удалить заблокированные и неактивные пользователи в WordPress
22.12.2025
Как создать свой плагин WordPress с нуля: пошаговое руководство
29.11.2025
Как защитить WordPress от взлома: эффективные способы и практические примеры
09.11.2025
Как использовать REST API в WordPress для создания своего плагина
08.12.2025