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

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

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

Многие пользователи ограничиваются готовыми решениями, но часто готовые плагины слишком громоздкие или не полностью соответствуют требованиям проекта. Делая плагин самостоятельно, вы получаете:

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

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

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

Для начала нужно понять, из каких компонентов состоит плагин с настройками:

  • Главный файл плагина с шапкой и основным кодом.
  • Подключение меню в админке.
  • Форма настроек с полями и сохранением данных.
  • Использование сохраненных настроек в функционале плагина.

Создадим папку wpturbo-simple-settings в директории wp-content/plugins и файл wpturbo-simple-settings.php.

Основной код плагина: создание и регистрация настроек

В начале добавим шапку плагина и подключим функции для меню и настроек.

<?php
/*
Plugin Name: WPTurbo Simple Settings
Description: Пример плагина с интерфейсом настроек для WordPress
Version: 1.0
Author: WPTurbo
*/

// Регистрируем меню и настройки
add_action('admin_menu', 'wpturbo_add_admin_menu');
add_action('admin_init', 'wpturbo_settings_init');

function wpturbo_add_admin_menu() {
    add_options_page(
        'WPTurbo Настройки',
        'WPTurbo Настройки',
        'manage_options',
        'wpturbo_simple_settings',
        'wpturbo_options_page'
    );
}

function wpturbo_settings_init() {
    register_setting('wpturbo_settings_group', 'wpturbo_settings');

    add_settings_section(
        'wpturbo_settings_section',
        'Основные настройки плагина',
        'wpturbo_settings_section_callback',
        'wpturbo_simple_settings'
    );

    add_settings_field(
        'wpturbo_text_field',
        'Текстовое поле',
        'wpturbo_text_field_render',
        'wpturbo_simple_settings',
        'wpturbo_settings_section'
    );

    add_settings_field(
        'wpturbo_checkbox_field',
        'Активировать функцию',
        'wpturbo_checkbox_field_render',
        'wpturbo_simple_settings',
        'wpturbo_settings_section'
    );
}

function wpturbo_text_field_render() {
    $options = get_option('wpturbo_settings');
    ?>
    <input type="text" name="wpturbo_settings[wpturbo_text_field]" value="<?php echo isset($options['wpturbo_text_field']) ? esc_attr($options['wpturbo_text_field']) : ''; ?>" size="50">
    <?php
}

function wpturbo_checkbox_field_render() {
    $options = get_option('wpturbo_settings');
    ?>
    <input type="checkbox" name="wpturbo_settings[wpturbo_checkbox_field]" value="1" <?php checked(1, isset($options['wpturbo_checkbox_field']) ? $options['wpturbo_checkbox_field'] : 0); ?>>
    <?php
}

function wpturbo_settings_section_callback() {
    echo 'Настройте параметры плагина ниже.';
}

function wpturbo_options_page() {
    ?>
    <form action="options.php" method="post">
        <h2>WPTurbo Настройки плагина</h2>
        <?php
        settings_fields('wpturbo_settings_group');
        do_settings_sections('wpturbo_simple_settings');
        submit_button();
        ?>
    </form>
    <?php
}

Этот код создаст в админке раздел «Настройки» → «WPTurbo Настройки» с двумя полями: текстовое и чекбокс. Данные будут сохраняться и загружаться автоматически.

Использование настроек в коде плагина

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

function wpturbo_show_greeting() {
    $options = get_option('wpturbo_settings');
    if (!empty($options['wpturbo_checkbox_field']) && !empty($options['wpturbo_text_field'])) {
        echo '<div class="wpturbo-greeting">Привет, ' . esc_html($options['wpturbo_text_field']) . '!</div>';
    }
}
add_action('wp_footer', 'wpturbo_show_greeting');

Этот код добавит в футер сайта приветствие, если включена соответствующая опция и задан текст.

Расширение плагина: добавление дополнительных полей настроек

Вы можете добавить любые типы полей: селекты, текстовые области, цветовые пикеры. Вот пример добавления селекта с выбором цвета:

function wpturbo_settings_init() {
    register_setting('wpturbo_settings_group', 'wpturbo_settings');

    add_settings_section('wpturbo_settings_section', 'Основные настройки плагина', 'wpturbo_settings_section_callback', 'wpturbo_simple_settings');

    // Текстовое поле
    add_settings_field('wpturbo_text_field', 'Текстовое поле', 'wpturbo_text_field_render', 'wpturbo_simple_settings', 'wpturbo_settings_section');

    // Чекбокс
    add_settings_field('wpturbo_checkbox_field', 'Активировать функцию', 'wpturbo_checkbox_field_render', 'wpturbo_simple_settings', 'wpturbo_settings_section');

    // Селект с цветами
    add_settings_field('wpturbo_color_field', 'Выберите цвет', 'wpturbo_color_field_render', 'wpturbo_simple_settings', 'wpturbo_settings_section');
}

function wpturbo_color_field_render() {
    $options = get_option('wpturbo_settings');
    $colors = [
        'red' => 'Красный',
        'green' => 'Зеленый',
        'blue' => 'Синий'
    ];
    ?>
    <select name="wpturbo_settings[wpturbo_color_field]">
        <?php foreach ($colors as $key => $label) : ?>
            <option value="<?php echo esc_attr($key); ?>" <?php selected(isset($options['wpturbo_color_field']) ? $options['wpturbo_color_field'] : '', $key); ?>><?php echo esc_html($label); ?></option>
        <?php endforeach; ?>
    </select>
    <?php
}

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

Советы по безопасности и удобству

При разработке плагина с настройками важно:

  • Использовать функции esc_html, esc_attr для вывода данных, чтобы избежать XSS.
  • Проверять права пользователя с помощью current_user_can('manage_options') перед выводом настроек.
  • Использовать встроенные хуки WordPress для интеграции плагина.
  • Документировать код и придерживаться стандартов кодирования WordPress.

Это позволит сделать плагин надежным и удобным для использования.

Заключение

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

Как создать собственный шорткод для вывода данных из базы WordPress
03.02.2026
WooCommerce: как автоматически удалять неиспользуемые вариации товаров через код
30.05.2026
Как удалить пустые метаполя в WordPress с помощью кода
01.04.2026
Как создать эффективный отчет по производительности WordPress
15.04.2026
Как заблокировать и удалить злоупотребления в WooCommerce через .htaccess
02.05.2026