В этой статье разберем, как на практике создать динамический виджет для 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 — отличный способ добавить интерактивности и свежести контенту вашего сайта. При правильном подходе к кэшированию и оптимизации запросов вы получите мощный инструмент, который привлечет и удержит посетителей.