Контекстные сниппеты — это короткие фрагменты текста, которые помогают пользователям быстро понять суть статьи или раздела сайта. В WordPress их можно использовать для улучшения UX и SEO, автоматически генерируя релевантные описания и подсказки. В этой статье подробно разберём, как создать автоматический генератор контекстных сниппетов на базе WordPress с интеграцией плагина WPGPT.
Зачем нужен автоматический генератор контекстных сниппетов
Ручное написание сниппетов — трудоёмкий процесс, особенно если контента много. Автоматизация позволяет:
- Экономить время редакторов и разработчиков.
- Обеспечить единообразие и актуальность описаний.
- Повысить кликабельность сниппетов в поисковой выдаче.
- Улучить внутреннюю навигацию и подсказки для пользователей.
Плагин WPGPT, использующий возможности GPT, идеально подходит для такой задачи, позволяя генерировать текст на основе содержания поста или произвольных полей.
Подготовка к реализации: установка и настройка WPGPT
Для начала необходимо установить и активировать плагин WPGPT с сайта WPGPT.
После активации убедитесь, что в настройках плагина введён корректный API-ключ для доступа к GPT. Это обязательный этап для генерации текста.
Далее создадим функцию, которая будет генерировать сниппеты на основе содержимого поста.
Создание функции генерации сниппетов с префиксом WPGPT
Для удобства и чтобы не конфликтовать с другими функциями, используем префикс wpgpt_. Вот пример функции, которая вызывается при сохранении поста и автоматически создаёт сниппет:
function wpgpt_generate_context_snippet($post_id) {
// Проверяем, что это нужный тип поста и не автосохранение
if (wp_is_post_autosave($post_id) || wp_is_post_revision($post_id)) {
return;
}
$post = get_post($post_id);
if ($post->post_type !== 'post') {
return;
}
// Подготавливаем prompt для GPT
$prompt = 'Сгенерируй короткий контекстный сниппет (40-60 слов) для следующего текста: ' . wp_strip_all_tags($post->post_content);
// Вызываем API WPGPT (пример, адаптируйте под реальный вызов плагина)
$snippet = WPGPT_API_generate_text($prompt);
if ($snippet) {
// Сохраняем сниппет в метаполе
update_post_meta($post_id, '_wpgpt_context_snippet', wp_strip_all_tags($snippet));
}
}
add_action('save_post', 'wpgpt_generate_context_snippet');В этом коде функция wpgpt_generate_context_snippet формирует запрос к GPT, отправляя содержимое поста, и сохраняет полученный сниппет в метаполе.
Обработка вывода сниппета в шаблоне
Чтобы отображать сгенерированный сниппет на фронтенде, добавьте следующий код в нужное место темы, например, в файл single.php:
if (get_post_meta(get_the_ID(), '_wpgpt_context_snippet', true)) {
echo '<div class="wpgpt-context-snippet">' . esc_html(get_post_meta(get_the_ID(), '_wpgpt_context_snippet', true)) . '</div>';
}Можно дополнительно стилизовать блок через CSS, чтобы он гармонично вписывался в дизайн сайта.
Дополнительные настройки и улучшения генератора
Автоматическое обновление сниппета при изменении контента
Чтобы сниппет всегда соответствовал актуальному содержимому, функция привязана к хуку save_post. Это значит, что при каждом обновлении поста сниппет будет пересоздан.
Если нужно, можно добавить проверку на наличие уже созданного сниппета, чтобы обновлять его только при значительных изменениях.
Форматирование и ограничения текста
Иногда GPT может сгенерировать слишком длинный или короткий сниппет. Чтобы контролировать длину, можно добавить в prompt ограничения, а также использовать PHP-функции для обрезки текста:
$snippet = wp_trim_words($snippet, 40, '...');Это обрежет сниппет до 40 слов, добавив многоточие, если текст длиннее.
Кэширование результатов с использованием Transient API
Если генерация сниппетов занимает время, имеет смысл кэшировать результат с помощью Transient API:
function wpgpt_get_context_snippet($post_id) {
$cache_key = 'wpgpt_context_snippet_' . $post_id;
$snippet = get_transient($cache_key);
if ($snippet === false) {
$snippet = get_post_meta($post_id, '_wpgpt_context_snippet', true);
set_transient($cache_key, $snippet, 12 * HOUR_IN_SECONDS);
}
return $snippet;
}Это позволит быстро получать сниппеты без повторных обращений к базе и API.
Примеры других полезных плагинов для работы с контекстом и генерацией текста
Помимо WPGPT, полезны следующие плагины:
- Clearfy Pro — оптимизация и ускорение сайта, что важно при автоматической генерации данных.
- WPRemark — расширенные возможности для работы с комментариями и отзывами, которые можно интегрировать с генерацией сниппетов.
- Тема Reboot — современный базовый шаблон, поддерживающий кастомные поля и метаданные.
Используйте их в связке с описанным подходом для создания мощного инструмента автоматизации контента.