Автоматизация категоризации контента — одна из важных задач при управлении большим сайтом на WordPress. Ручное добавление категорий к записям занимает время и не всегда гарантирует точность распределения. С появлением моделей искусственного интеллекта, таких как GPT, появилась возможность создавать автоматические генераторы категорий, которые анализируют текст и подбирают наиболее релевантные категории. В этой статье мы подробно рассмотрим, как реализовать такой функционал на WordPress с помощью GPT и PHP.
Почему автоматический генератор категорий важен для WordPress проектов
Категории помогают структурировать контент, улучшая навигацию и SEO сайта. Однако при большом объеме публикаций ручное назначение категорий становится проблемой. Автоматический генератор:
- Ускоряет процесс публикации.
- Обеспечивает единообразие в распределении тем.
- Снижает вероятность ошибок и пропусков.
- Позволяет использовать возможности искусственного интеллекта для глубокого анализа текста.
Это особенно актуально для сайтов с новостями, блогами, интернет-магазинами и образовательными платформами.
Обзор подхода: как GPT помогает с категоризацией
GPT — мощная языковая модель, умеющая анализировать и понимать текст. Мы можем отправить ей содержимое поста и попросить сгенерировать список подходящих категорий по смыслу. Например, для статьи о WordPress плагинах GPT может предложить «Плагины», «WordPress», «Разработка», «Автоматизация».
В нашем случае мы будем использовать API GPT, чтобы обрабатывать тексты постов и возвращать категории. Затем эти категории автоматически добавляются к записи через стандартные функции WordPress.
Подготовка окружения и подключение WPGPT
Для интеграции GPT в WordPress удобно использовать плагин WPGPT от WPShop. Он облегчает работу с GPT API и уже содержит нужные методы для отправки запросов и обработки ответов.
Установите и активируйте WPGPT на вашем сайте, затем настройте API ключ OpenAI в настройках плагина.
Создание функции для автоматической генерации категорий
Далее создадим кастомную функцию wpgpt_generate_categories_for_post, которая будет вызываться при сохранении записи и автоматически добавлять категории.
function wpgpt_generate_categories_for_post($post_id) {
// Проверяем, что это не автосохранение
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
// Получаем объект поста
$post = get_post($post_id);
if (!$post || $post->post_type !== 'post') return;
// Получаем содержимое поста
$content = $post->post_content;
// Формируем запрос к GPT через WPGPT
$prompt = "Определи 3-5 релевантных категорий для следующего текста статьи на WordPress:\n" . $content;
// Используем метод плагина WPGPT для отправки запроса
$response = WPGPT()->chat_completion([
'messages' => [
['role' => 'user', 'content' => $prompt]
],
'max_tokens' => 60,
'temperature' => 0.3,
]);
if (empty($response) || empty($response['choices'][0]['message']['content'])) return;
// Получаем ответ и разбираем категории
$categories_text = $response['choices'][0]['message']['content'];
// Предположим, категории разделены запятыми
$categories = array_map('trim', explode(',', $categories_text));
// Получаем текущие категории поста
$current_cats = wp_get_post_categories($post_id);
foreach ($categories as $cat_name) {
if (empty($cat_name)) continue;
// Проверяем, существует ли категория
$cat = get_category_by_slug(sanitize_title($cat_name));
if (!$cat) {
// Создаем категорию, если нет
$cat_id = wp_create_category($cat_name);
} else {
$cat_id = $cat->term_id;
}
// Добавляем категорию к посту, если еще не добавлена
if (!in_array($cat_id, $current_cats)) {
wp_set_post_categories($post_id, array_merge($current_cats, [$cat_id]));
$current_cats[] = $cat_id;
}
}
}
add_action('save_post', 'wpgpt_generate_categories_for_post');В этом коде мы используем хук save_post, который срабатывает при сохранении записи. Функция анализирует текст, отправляет его в GPT через WPGPT, получает список категорий и добавляет их к записи.
Разбор ключевых моментов функции
- Проверка
DOING_AUTOSAVEнужна, чтобы не запускать функцию при автосохранении. - Формируем запрос, в котором просим GPT определить категории.
- Обрабатываем ответ, разбивая его на отдельные категории.
- Создаем категории, если их нет в базе.
- Добавляем категории к посту через
wp_set_post_categories.
Улучшение качества генерации категорий: советы и рекомендации
Чтобы GPT выдавал максимально релевантные категории, важно правильно формулировать запрос. Можно добавлять контекст, например:
- Указать тематику сайта — «Это блог о WordPress разработке».
- Уточнить число категорий — «Определи 3–5 категорий».
- Просить выдавать категории в удобном формате — например, через запятую.
Кроме того, можно добавить фильтрацию или словарь допустимых категорий, чтобы избежать создания мусорных таксономий.
Пример интеграции с плагином Clearfy Pro для оптимизации категорий
Если вы используете Clearfy Pro, то можете дополнительно очищать и оптимизировать таксономии, удалять пустые категории и проводить SEO-анализ автоматически, что хорошо дополняет наш генератор.
Как протестировать и отладить автоматический генератор категорий
Для отладки рекомендуем добавить логирование ответа GPT в файл или использовать плагин Debug Bar. Это позволит увидеть, какие категории предлагает модель и корректно ли они обрабатываются.
Например, добавьте в функцию вывод в лог:
error_log('WPGPT Categories: ' . $categories_text);Также проверяйте существование категорий через административную панель и вручную корректируйте при необходимости.
Заключение
Автоматический генератор категорий на базе GPT и WordPress — мощный инструмент для упрощения управления контентом, экономии времени и повышения качества структурирования сайта. Используя описанную в статье реализацию с плагином WPGPT, вы сможете быстро внедрить этот функционал на своем проекте и значительно улучшить опыт работы с контентом.