Автоматический генератор подсказок значительно улучшает пользовательский опыт на сайте, особенно если у вас большой каталог статей, товаров или других данных. В этой статье мы разберём, как создать такой генератор подсказок (autocomplete) в WordPress, используя возможности плагина WPGPT и собственный PHP-код.
Что такое генератор подсказок и зачем он нужен
Генератор подсказок — это функционал, который предлагает пользователю варианты ввода во время набора текста в поле поиска или формы. Это не только ускоряет поиск, но и помогает избежать опечаток, а также направляет пользователя к наиболее релевантному контенту.
В WordPress реализовать автодополнение можно разными способами — через JavaScript-библиотеки типа jQuery UI Autocomplete или через современные решения на Vue.js, React. Однако, ключевая задача — быстро получать подсказки с сервера. Здесь нам поможет REST API WordPress и искусственный интеллект WPGPT.
Реализация генератора подсказок с помощью WPGPT
Подготовка REST API для подсказок
Для начала создадим собственный эндпоинт в WordPress REST API, который будет принимать параметр запроса и возвращать подсказки. Используем префикс wp_gpt_ для функций, чтобы избежать конфликтов.
add_action('rest_api_init', function() {
register_rest_route('wpgpt/v1', '/suggest/', array(
'methods' => 'GET',
'callback' => 'wp_gpt_get_suggestions',
'permission_callback' => '__return_true',
));
});
function wp_gpt_get_suggestions($request) {
$query = sanitize_text_field($request->get_param('q'));
if (empty($query)) {
return new WP_REST_Response(array(), 200);
}
// Пример: поиск по заголовкам постов
$args = [
's' => $query,
'post_type' => 'post',
'posts_per_page' => 10,
'fields' => 'ids',
];
$posts = get_posts($args);
$suggestions = [];
foreach ($posts as $post_id) {
$suggestions[] = get_the_title($post_id);
}
return new WP_REST_Response($suggestions, 200);
}
Этот код создаёт эндпоинт /wp-json/wpgpt/v1/suggest/?q=текст, который возвращает список заголовков постов, содержащих текст запроса.
Интеграция с фронтендом
Теперь добавим на сайт HTML-поле поиска и подключим JavaScript, который будет отправлять запросы к REST API и показывать подсказки.
<input type="text" id="wpgpt-search" placeholder="Начните вводить запрос...">
<div id="wpgpt-suggestions"></div>
<script>
const input = document.getElementById('wpgpt-search');
const suggestionsBox = document.getElementById('wpgpt-suggestions');
input.addEventListener('input', function() {
const query = this.value.trim();
if(query.length < 2) {
suggestionsBox.innerHTML = '';
return;
}
fetch(`/wp-json/wpgpt/v1/suggest/?q=${encodeURIComponent(query)}`)
.then(response => response.json())
.then(data => {
if(!data.length) {
suggestionsBox.innerHTML = '';
return;
}
suggestionsBox.innerHTML = data.map(item => `<div class="wpgpt-suggestion-item">${item}</div>`).join('');
});
});
// Обработка клика по подсказке
suggestionsBox.addEventListener('click', function(e) {
if(e.target.classList.contains('wpgpt-suggestion-item')) {
input.value = e.target.textContent;
suggestionsBox.innerHTML = '';
}
});
</script>
Так мы получаем простой, но эффективный автокомплит для поиска по заголовкам постов.
Улучшение генератора подсказок с помощью ИИ WPGPT
Плагин WPGPT позволяет расширить функционал, подключив генерацию подсказок на основе искусственного интеллекта. Вместо обычного поиска по базе данных можно отправлять запросы к GPT для генерации релевантных подсказок, учитывающих контекст.
Для этого потребуется использовать API WPGPT (https://wpshop.ru/plugin/wpgpt/?utm_source=wp-gpt.ru&utm_medium=article&utm_campaign=kak-sozdat-avtomaticheskiy-generator-podskazok-v-wordpress-s-pomoshchyu-wpgpt) и добавить в REST API вызов генерации подсказок через GPT.
function wp_gpt_get_ai_suggestions($request) {
$query = sanitize_text_field($request->get_param('q'));
if (empty($query)) {
return new WP_REST_Response(array(), 200);
}
// Подключаем WPGPT API для генерации подсказок
$prompt = "Предложи 5 коротких подсказок для поискового запроса: '{$query}'";
$response = WPGPT_Generator::generate_text($prompt, [
'max_tokens' => 50,
'temperature' => 0.5,
]);
$suggestions = explode("\n", trim($response));
return new WP_REST_Response($suggestions, 200);
}
Этот подход позволяет создавать умные подсказки, которые могут учитывать синонимы, популярные запросы, а также контекст сайта.
Практические рекомендации по оптимизации и безопасности
При реализации генератора подсказок важно учитывать нагрузку на сервер и безопасность:
- Кешируйте результаты запросов, чтобы снизить количество обращений к базе данных и API GPT.
- Ограничьте длину ввода и частоту запросов с одного IP, чтобы избежать злоупотреблений.
- Обрабатывайте и фильтруйте входные данные через
sanitize_text_fieldи другие sanitization-функции WordPress. - Используйте nonce и проверки прав пользователя, если подсказки должны быть доступны только авторизованным.
Для кеширования можно использовать Transients API WordPress:
function wp_gpt_get_suggestions_with_cache($request) {
$query = sanitize_text_field($request->get_param('q'));
if (empty($query)) {
return new WP_REST_Response(array(), 200);
}
$cache_key = 'wpgpt_suggestions_' . md5($query);
$cached = get_transient($cache_key);
if ($cached !== false) {
return new WP_REST_Response($cached, 200);
}
// Логика получения подсказок, например, через GPT или поиск по базе
$suggestions = wp_gpt_simple_search($query); // Функция для примера
set_transient($cache_key, $suggestions, 3600); // кеш на 1 час
return new WP_REST_Response($suggestions, 200);
}
Заключение
Автоматический генератор подсказок — мощный инструмент улучшения UX на сайте WordPress. Используя REST API и плагин WPGPT, можно реализовать как простой поиск по базе, так и умные подсказки на базе искусственного интеллекта. В статье приведены подробные примеры кода и рекомендации по оптимизации.
Для расширения возможностей рекомендую ознакомиться с плагином WPGPT на сайте WPGPT на WPSHOP.