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

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

Что нужно знать перед созданием плагина с AI для WordPress

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

Чтобы использовать AI, чаще всего мы обращаемся к API внешних сервисов, отправляя текстовые или иные данные и получая готовые результаты, например, генерацию текста, анализ или классификацию. Это требует навыков работы с HTTP-запросами и асинхронным кодом в WordPress.

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

Шаг 1. Создаем структуру плагина и базовый файл

Начнем с создания папки для плагина в wp-content/plugins/wp-ai-plugin. Внутри создадим файл wp-ai-plugin.php с минимальным описанием:

<?php
/**
 * Plugin Name: WP AI Plugin
 * Description: Плагин для интеграции AI в WordPress.
 * Version: 1.0
 * Author: wp-ai.ru
 */

defined('ABSPATH') or die('No script kiddies please!');

Этот файл уже можно активировать в админке WordPress.

Шаг 2. Подключаем OpenAI API для генерации текста

Для примера возьмем OpenAI GPT-3, который позволяет генерировать тексты. Для работы с API можно использовать функцию wp_remote_post. Создадим функцию wpai_generate_text(), которая отправит запрос и получит ответ.

function wpai_generate_text($prompt) {
    $api_key = 'ВАШ_КЛЮЧ_OPENAI';
    $endpoint = 'https://api.openai.com/v1/completions';

    $args = array(
        'headers' => array(
            'Content-Type' => 'application/json',
            'Authorization' => 'Bearer ' . $api_key,
        ),
        'body' => json_encode(array(
            'model' => 'text-davinci-003',
            'prompt' => $prompt,
            'max_tokens' => 150,
            'temperature' => 0.7,
        )),
    );

    $response = wp_remote_post($endpoint, $args);

    if (is_wp_error($response)) {
        return 'Ошибка API: ' . $response->get_error_message();
    }

    $body = wp_remote_retrieve_body($response);
    $data = json_decode($body, true);

    if (isset($data['choices'][0]['text'])) {
        return trim($data['choices'][0]['text']);
    }
    return 'Нет ответа от AI';
}

Эта функция принимает текст-промпт и возвращает сгенерированный AI текст или сообщение об ошибке.

Шаг 3. Создаем шорткод для вывода AI-текста на странице

Чтобы удобно использовать возможности AI, создадим шорткод [wpai_generate prompt="Ваш запрос"], который выведет сгенерированный текст в любом месте сайта.

function wpai_shortcode_generate($atts) {
    $atts = shortcode_atts(array(
        'prompt' => 'Привет, AI!'
    ), $atts);

    $result = wpai_generate_text($atts['prompt']);

    return '<div class="wpai-result">' . esc_html($result) . '</div>';
}
add_shortcode('wpai_generate', 'wpai_shortcode_generate');

Теперь в редакторе можно вставить шорткод с любым текстом и получить AI-ответ.

Шаг 4. Добавляем настройки плагина для удобства

Чтобы не хранить API-ключ в коде, добавим страницу настроек в админку. Используем стандартный API WordPress для добавления меню и опций.

function wpai_add_admin_menu() {
    add_options_page('WP AI Настройки', 'WP AI', 'manage_options', 'wp-ai', 'wpai_options_page');
}
add_action('admin_menu', 'wpai_add_admin_menu');

function wpai_settings_init() {
    register_setting('wpai', 'wpai_options');

    add_settings_section(
        'wpai_section',
        'Настройки API',
        null,
        'wp-ai'
    );

    add_settings_field(
        'wpai_api_key',
        'API ключ OpenAI',
        'wpai_api_key_render',
        'wp-ai',
        'wpai_section'
    );
}
add_action('admin_init', 'wpai_settings_init');

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

function wpai_options_page() {
    ?>
    <form action="options.php" method="post">
        <h2>WP AI Плагин - Настройки</h2>
        <?php
        settings_fields('wpai');
        do_settings_sections('wp-ai');
        submit_button();
        ?>
    </form>
    <?php
}

// Изменим функцию генерации, чтобы брать ключ из настроек
function wpai_generate_text($prompt) {
    $options = get_option('wpai_options');
    $api_key = isset($options['wpai_api_key']) ? $options['wpai_api_key'] : '';
    if (empty($api_key)) {
        return 'API ключ не установлен в настройках плагина';
    }
    // Далее код как в Шаге 2
    $endpoint = 'https://api.openai.com/v1/completions';

    $args = array(
        'headers' => array(
            'Content-Type' => 'application/json',
            'Authorization' => 'Bearer ' . $api_key,
        ),
        'body' => json_encode(array(
            'model' => 'text-davinci-003',
            'prompt' => $prompt,
            'max_tokens' => 150,
            'temperature' => 0.7,
        )),
    );

    $response = wp_remote_post($endpoint, $args);

    if (is_wp_error($response)) {
        return 'Ошибка API: ' . $response->get_error_message();
    }

    $body = wp_remote_retrieve_body($response);
    $data = json_decode($body, true);

    if (isset($data['choices'][0]['text'])) {
        return trim($data['choices'][0]['text']);
    }
    return 'Нет ответа от AI';
}

Шаг 5. Оптимизация и кеширование ответов AI

Обращения к API часто платные и могут занимать время. Чтобы ускорить работу, стоит кешировать результаты запросов. Используем Transient API WordPress для временного хранения ответа.

function wpai_generate_text_cached($prompt) {
    $transient_key = 'wpai_cache_' . md5($prompt);
    $cached = get_transient($transient_key);
    if ($cached !== false) {
        return $cached;
    }

    $result = wpai_generate_text($prompt);
    // Кешируем на 12 часов
    set_transient($transient_key, $result, 12 * HOUR_IN_SECONDS);

    return $result;
}

// В шорткоде замените вызов на wpai_generate_text_cached
function wpai_shortcode_generate($atts) {
    $atts = shortcode_atts(array(
        'prompt' => 'Привет, AI!'
    ), $atts);

    $result = wpai_generate_text_cached($atts['prompt']);

    return '<div class="wpai-result">' . esc_html($result) . '</div>';
}
add_shortcode('wpai_generate', 'wpai_shortcode_generate');

Так мы уменьшим число обращений к API и повысим производительность сайта.

Дополнительные возможности и расширения

Вы можете расширить плагин, добавив:

  • Обработку ошибок и логирование запросов к API.
  • Интерфейс для выбора моделей AI и параметров генерации.
  • Интеграцию с редактором Gutenberg, чтобы пользователи могли генерировать контент прямо в визуальном редакторе.
  • Обратную связь для корректировки сгенерированного текста.

Также можно использовать AI для анализа комментариев, автоматического тегирования записей, создания подсказок для SEO и многого другого.

Заключение

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

Автоматизация создания Sitemap в WordPress: практические решения и примеры
09.11.2025
Как решить проблему перезагрузки и зависания блоков Gutenberg в WordPress
08.12.2025
Создание своего шорткода в WordPress: практическое руководство
14.11.2025
Автоматизация ответов на комментарии в WordPress с использованием AI
24.12.2025
Автозаполнение категорий и тегов с помощью AI в WordPress
17.12.2025