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

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

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

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

Преимущества собственного плагина:

  • Контроль над кодом и функционалом
  • Лёгкость обновления и переносимости
  • Безопасность — минимизируете риск конфликтов
  • Возможность публикации и распространения

Перед началом важно понимать базовые принципы работы WordPress: хуки (actions и filters), подключение скриптов и стилей, регистрация пользовательских типов записей и так далее.

Структура плагина WordPress: необходимые файлы и папки

Минимально для плагина понадобится один PHP-файл с заголовком и кодом. Однако для удобства и поддержки лучше создать папку с именем плагина и разместить внутри файлы:

  • wp-course-plugin.php — основной файл с заголовком плагина и основной логикой
  • readme.txt — описание плагина (опционально)
  • assets/ — папка с изображениями, скриптами, стилями

Пример заголовка плагина в wp-course-plugin.php:

<?php
/*
Plugin Name: WP Course Sample Plugin
Plugin URI: https://wp-course.ru
Description: Пример простого плагина для WP Course
Version: 1.0
Author: WP Course
Author URI: https://wp-course.ru
License: GPL2
*/

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

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

Регистрация хуков: actions и filters для расширения функционала

Основной способ взаимодействовать с WordPress — использовать хуки. Они позволяют добавить действия (actions) или модифицировать данные (filters) в нужных местах.

Например, добавим в плагин функцию, которая выводит приветственное сообщение в админке:

function wp_course_admin_notice() {
    echo '<div class="notice notice-success is-dismissible"><p>Привет от WP Course Plugin!</p></div>';
}
add_action('admin_notices', 'wp_course_admin_notice');

Этот код добавляет уведомление на всех страницах админки.

Фильтры: пример изменения контента

Фильтры позволяют изменять текст или данные. Например, заменим слово «WordPress» на «WP Course» в содержимом поста:

function wp_course_filter_content($content) {
    return str_replace('WordPress', 'WP Course', $content);
}
add_filter('the_content', 'wp_course_filter_content');

Такой подход полезен для небольших изменений без правки темы.

Регистрация пользовательских шорткодов для вывода контента

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

function wp_course_current_date_shortcode() {
    return date('d.m.Y');
}
add_shortcode('wp_course_date', 'wp_course_current_date_shortcode');

Теперь в редакторе можно вставить [wp_course_date], и он заменится на текущую дату.

Шорткод с параметрами

Добавим параметр для формата даты:

function wp_course_date_format_shortcode($atts) {
    $atts = shortcode_atts(array(
        'format' => 'd.m.Y',
    ), $atts, 'wp_course_date_format');

    return date($atts['format']);
}
add_shortcode('wp_course_date_format', 'wp_course_date_format_shortcode');

Использование: [wp_course_date_format format="Y"] выведет год.

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

Для стилей и скриптов нужно использовать функции wp_enqueue_style и wp_enqueue_script, подключая их через хуки.

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

function wp_course_enqueue_assets() {
    wp_enqueue_style('wp_course_style', plugin_dir_url(__FILE__) . 'assets/css/style.css');
    wp_enqueue_script('wp_course_script', plugin_dir_url(__FILE__) . 'assets/js/script.js', array('jquery'), null, true);
}
add_action('wp_enqueue_scripts', 'wp_course_enqueue_assets');

Создайте папку assets и добавьте туда файлы style.css и script.js. Это обеспечит корректную загрузку ресурсов только на фронтенде.

Создание настроек плагина через Settings API

Для управления плагином из админки удобно использовать Settings API. Это позволяет создавать страницы настроек с полями, в которых можно сохранять значения.

Пример создания простой страницы настроек с одним полем:

function wp_course_register_settings() {
    add_options_page('Настройки WP Course', 'WP Course', 'manage_options', 'wp_course_settings', 'wp_course_render_settings_page');

    register_setting('wp_course_options_group', 'wp_course_option_text');

    add_settings_section('wp_course_main_section', 'Основные настройки', null, 'wp_course_settings');

    add_settings_field('wp_course_field_text', 'Введите текст', 'wp_course_field_text_cb', 'wp_course_settings', 'wp_course_main_section');
}
add_action('admin_menu', 'wp_course_register_settings');

function wp_course_render_settings_page() {
    ?>
    <div class="wrap">
        <h1>Настройки WP Course</h1>
        <form method="post" action="options.php">
            <?php
            settings_fields('wp_course_options_group');
            do_settings_sections('wp_course_settings');
            submit_button();
            ?>
        </form>
    </div>
    

Теперь в меню «Настройки» появится пункт «WP Course» с формой для ввода и сохранения данных.

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

Добавим в плагин регистрацию собственного типа записи portfolio, чтобы демонстрировать проекты. Это распространённая задача при создании сайтов на WordPress.

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

    $args = array(
        'labels' => $labels,
        'public' => true,
        'has_archive' => true,
        'menu_position' => 5,
        'supports' => array('title', 'editor', 'thumbnail'),
        'show_in_rest' => true,
    );

    register_post_type('portfolio', $args);
}
add_action('init', 'wp_course_register_post_type');

После активации плагина в админке появится новый тип записей «Портфолио».

Заключение

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

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
WP-Course: Работа с хуками и фильтрами в WordPress — подробное руководство с примерами
25.11.2025
Как удалить таблицу из базы данных WordPress без плагинов: практическое руководство
09.12.2025
Оптимизация базы данных WordPress: как ускорить сайт и снизить нагрузку
17.11.2025
Как создать уникальный виджет в WordPress с подключением AJAX
29.11.2025
Как удалить мета-тег генератора WordPress для повышения безопасности
02.11.2025
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше