Как создать динамический виджет WordPress с использованием GPT

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

Зачем нужен динамический виджет с GPT в WordPress

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

Динамический виджет с GPT поможет:

  • Автоматически создавать описания товаров или услуг.
  • Генерировать советы и рекомендации для посетителей.
  • Подготавливать ответы на часто задаваемые вопросы.
  • Повысить вовлеченность пользователей за счет уникального контента.

Создаем простой виджет с интеграцией GPT API

Для примера реализуем виджет, который выводит сгенерированный GPT текст на основе текущей категории поста. Предположим, у вас есть ключ API OpenAI или другой GPT-сервис.

Регистрация виджета

class WpGpt_Dynamic_Widget extends WP_Widget {
    public function __construct() {
        parent::__construct(
            'wpgpt_dynamic_widget',
            'WPGPT: Динамический GPT виджет',
            ['description' => 'Виджет генерирует текст с помощью GPT']
        );
    }

    public function widget($args, $instance) {
        echo $args['before_widget'];
        $category = get_queried_object();
        $category_name = is_category() ? $category->name : 'WordPress';

        $content = $this->wpgpt_generate_text($category_name);

        echo $args['before_title'] . apply_filters('widget_title', 'Советы по теме: ' . $category_name) . $args['after_title'];
        echo '<div class="wpgpt-widget-content">' . esc_html($content) . '</div>';
        echo $args['after_widget'];
    }

    private function wpgpt_generate_text($topic) {
        $api_key = 'ВАШ_API_КЛЮЧ';
        $prompt = "Дай полезные советы по теме: $topic";

        $response = wp_remote_post('https://api.openai.com/v1/chat/completions', [
            'headers' => [
                'Content-Type' => 'application/json',
                'Authorization' => 'Bearer ' . $api_key,
            ],
            'body' => json_encode([
                'model' => 'gpt-3.5-turbo',
                'messages' => [[
                    'role' => 'user',
                    'content' => $prompt
                ]],
                'max_tokens' => 150,
            ]),
            'timeout' => 10,
        ]);

        if (is_wp_error($response)) {
            return 'Ошибка получения данных от GPT';
        }

        $body = json_decode(wp_remote_retrieve_body($response), true);
        if (isset($body['choices'][0]['message']['content'])) {
            return trim($body['choices'][0]['message']['content']);
        }

        return 'Нет данных для отображения';
    }

    public function form($instance) {
        echo '<p>Настроек нет</p>';
    }

    public function update($new_instance, $old_instance) {
        return $old_instance;
    }
}

function wpgpt_register_dynamic_widget() {
    register_widget('WpGpt_Dynamic_Widget');
}
add_action('widgets_init', 'wpgpt_register_dynamic_widget');

В этом коде мы создаем виджет, который получает название текущей категории и отправляет запрос в GPT API для генерации текста. В ответ приходит полезный совет по теме.

Как оптимизировать работу виджета и снизить нагрузку

Обращение к GPT API — это внешний запрос, который может замедлить загрузку страницы. Чтобы избежать этого, стоит реализовать кэширование результатов:

  • Сохранять ответ GPT в transient на некоторое время (например, 12 часов).
  • По истечении срока кэша обновлять данные при следующем запросе.

Пример кэширования для функции wpgpt_generate_text:

private function wpgpt_generate_text($topic) {
    $cache_key = 'wpgpt_widget_' . md5($topic);
    $cached = get_transient($cache_key);
    if ($cached !== false) {
        return $cached;
    }

    // ... запрос к API GPT, как выше ...

    if (isset($body['choices'][0]['message']['content'])) {
        $content = trim($body['choices'][0]['message']['content']);
        set_transient($cache_key, $content, 12 * HOUR_IN_SECONDS);
        return $content;
    }

    return 'Нет данных для отображения';
}

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

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

Вы можете расширить функционал виджета, добавив:

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

Также можно создать несколько виджетов для разных целей — например, автоматическое создание отзывов, генерация вопросов для викторин (плагин Quizle) или формирование уникальных описаний для страниц.

Заключение

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

Как создать автоматический фильтр по тегам в WordPress с поддержкой GPT
16.02.2026
Как создать автоматический генератор SEO-заголовков в WordPress с помощью PHP и WPGPT
01.03.2026
Как автоматизировать ответы на комментарии в WordPress с помощью GPT
18.12.2025
Как добавить произвольные поля в REST API WordPress
30.11.2025
Как создать автоматический генератор категорий в WordPress с поддержкой GPT
26.02.2026