Фильтрация контента по тегам — одна из самых востребованных функций для повышения удобства навигации на сайте WordPress. Однако стандартные инструменты часто ограничены или требуют ручного добавления фильтров. В этой статье мы разберём, как создать автоматический фильтр по тегам, который будет использовать API GPT для умного подбора и группировки тегов, повышая релевантность и пользовательский опыт.
Почему стоит использовать автоматический фильтр по тегам?
Теги помогают структурировать контент, но ручное управление ими часто приводит к избыточности и неэффективности. Автоматический фильтр, основанный на анализе GPT, позволит:
- Динамически группировать похожие теги и создавать удобные категории.
- Предлагать пользователю релевантные дополнительные фильтры на основе содержания постов.
- Уменьшить количество дублирующих и нерелевантных тегов.
Это особенно полезно для новостных, блоговых и магазинов на WordPress с большим количеством постов и продуктов.
Как работает интеграция GPT для фильтрации тегов?
GPT-модель анализирует содержание постов и существующие теги, выявляет скрытые тематические связи и предлагает оптимальные варианты фильтров. Процесс выглядит так:
- Собирается список тегов и связанных с ними постов.
- Через API GPT передаётся контент или описания тегов для анализа.
- GPT возвращает рекомендации по группировке и приоритету тегов.
- На основе этого создаётся динамический фильтр, который отображается на сайте.
Такой подход помогает избежать ручного управления и делает фильтрацию интеллектуальной.
Пример реализации автоматического фильтра с GPT в WordPress
Для примера мы создадим функцию wp_gpt_generate_tag_filter(), которая через AJAX будет запрашивать рекомендации GPT и строить фильтр.
Шаг 1. Получение тегов и контента
function wp_gpt_get_all_tags_with_content() {
$tags = get_tags(array('hide_empty' => true));
$tags_content = array();
foreach ($tags as $tag) {
$posts = get_posts(array('tag_id' => $tag->term_id, 'numberposts' => 5));
$content = '';
foreach ($posts as $post) {
$content .= $post->post_title . ' ' . $post->post_excerpt . ' ';
}
$tags_content[] = array(
'tag' => $tag->name,
'content' => $content
);
}
return $tags_content;
}
Эта функция возвращает массив тегов с примерами контента для передачи GPT.
Шаг 2. Вызов GPT API для анализа тегов
Для примера используем функцию, которая отправляет запрос к GPT (нужно заменить YOUR_API_KEY и endpoint на реальные данные):
function wp_gpt_analyze_tags($tags_content) {
$api_key = 'YOUR_API_KEY';
$url = 'https://api.openai.com/v1/chat/completions';
$prompt = "Даны следующие теги с примерами контента. Сгруппируй их по тематике и предложи ключевые фильтры для сайта:
";
foreach ($tags_content as $item) {
$prompt .= "Тег: " . $item['tag'] . ", Контент: " . $item['content'] . "\n";
}
$data = array(
'model' => 'gpt-4',
'messages' => array(
array('role' => 'user', 'content' => $prompt)
),
'max_tokens' => 500
);
$args = array(
'body' => json_encode($data),
'headers' => array(
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . $api_key
),
'timeout' => 20
);
$response = wp_remote_post($url, $args);
if (is_wp_error($response)) {
return null;
}
$body = wp_remote_retrieve_body($response);
$result = json_decode($body, true);
return $result['choices'][0]['message']['content'] ?? null;
}
Шаг 3. Отображение фильтра на фронтенде
Полученный от GPT текст можно парсить и строить UI фильтра. Пример простой функции для вывода списка фильтров:
function wp_gpt_render_tag_filter($filter_data) {
echo '<div class="wp-gpt-tag-filter">';
$filters = explode("\n", $filter_data);
foreach ($filters as $filter) {
if (trim($filter) !== '') {
echo '<label><input type="checkbox" name="tags[]" value="' . esc_attr($filter) . '"> ' . esc_html($filter) . '</label><br>';
}
}
echo '</div>';
}
Практические рекомендации и плагины для расширения
Чтобы упростить интеграцию и расширить функциональность, можно использовать готовые плагины и инструменты:
- WPGPT от WPShop — плагин, который облегчает работу с GPT-моделями в WordPress, включая генерацию контента и аналитические функции. Его можно доработать для фильтрации тегов. Подробнее: WPGPT на WPShop.
- FacetWP
- Ajaxify WordPress Site
Рекомендуется также использовать кэширование результатов вызовов GPT, чтобы снизить нагрузку и задержки.
Оптимизация и безопасность при работе с GPT API
При интеграции GPT важно учитывать следующие моменты:
- Не передавайте в API слишком большой объём данных — разбивайте запросы.
- Используйте nonce и проверки прав доступа при AJAX-запросах.
- Храните API-ключи вне общедоступных файлов, например, в
wp-config.php. - Реализуйте кэширование ответов GPT, чтобы не превышать лимиты и ускорить работу.
Следуя этим рекомендациям, вы получите надёжный и удобный фильтр по тегам, который будет улучшать поиск и взаимодействие пользователей с вашим контентом.