Как добавить автоподсказки в поиск WordPress

Добавление автоподсказок в поиск WordPress значительно улучшает пользовательский опыт, позволяя посетителям быстрее находить нужный контент. В этой статье подробно разберём, как реализовать функцию автодополнения в стандартном поиске WordPress, используя AJAX и REST API, а также рассмотрим популярные плагины и способы их настройки.

Почему стоит добавить автоподсказки в поиск WordPress

По умолчанию поиск WordPress прост и не предоставляет подсказок. Это может замедлить поиск информации и снизить удобство для пользователей. Автоподсказки помогают:

  • Уменьшить количество вводимых символов;
  • Сократить время поиска;
  • Предлагать релевантные варианты запросов;
  • Повысить вовлечённость и конверсию.

Реализовать такую функциональность можно несколькими способами: через кастомный код или сторонние плагины. Рассмотрим оба варианта.

Реализация автоподсказок с помощью кода на AJAX и REST API

Шаг 1. Создаём AJAX обработчик на стороне сервера

Для начала нужно зарегистрировать AJAX-обработчик, который будет принимать поисковый запрос и возвращать список подходящих постов.

add_action('wp_ajax_wpbox_search_autocomplete', 'wpbox_search_autocomplete_callback');
add_action('wp_ajax_nopriv_wpbox_search_autocomplete', 'wpbox_search_autocomplete_callback');

function wpbox_search_autocomplete_callback() {
    $term = isset($_GET['term']) ? sanitize_text_field(wp_unslash($_GET['term'])) : '';
    if (empty($term)) {
        wp_send_json([]);
    }

    $args = [
        's' => $term,
        'post_status' => 'publish',
        'posts_per_page' => 10,
        'fields' => 'ids',
    ];

    $query = new WP_Query($args);
    $results = [];

    if ($query->have_posts()) {
        foreach ($query->posts as $post_id) {
            $results[] = [
                'id' => $post_id,
                'value' => get_the_title($post_id),
                'permalink' => get_permalink($post_id),
            ];
        }
    }

    wp_send_json($results);
}

Шаг 2. Добавляем JavaScript для вызова AJAX и отображения подсказок

Подключите скрипт, который будет отправлять запросы и отображать варианты под полем поиска.

function wpbox_enqueue_autocomplete_script() {
    wp_enqueue_script('jquery-ui-autocomplete');
    wp_enqueue_script('wpbox-autocomplete', get_template_directory_uri() . '/js/wpbox-autocomplete.js', ['jquery', 'jquery-ui-autocomplete'], null, true);
    wp_localize_script('wpbox-autocomplete', 'wpbox_ajax_object', ['ajax_url' => admin_url('admin-ajax.php')]);
}
add_action('wp_enqueue_scripts', 'wpbox_enqueue_autocomplete_script');

Создайте файл wpbox-autocomplete.js в папке js вашей темы с таким содержимым:

jQuery(document).ready(function($) {
    $('#searchform input[name="s"]').autocomplete({
        source: function(request, response) {
            $.ajax({
                url: wpbox_ajax_object.ajax_url,
                dataType: 'json',
                data: {
                    action: 'wpbox_search_autocomplete',
                    term: request.term
                },
                success: function(data) {
                    response($.map(data, function(item) {
                        return {
                            label: item.value,
                            value: item.value,
                            url: item.permalink
                        };
                    }));
                }
            });
        },
        select: function(event, ui) {
            window.location.href = ui.item.url;
        },
        minLength: 2
    });
});

Использование плагинов для автоподсказок в WordPress

Relevanssi – расширенный поиск с подсказками

Relevanssi – популярный плагин, который заменяет стандартный поиск на более мощный, включая поддержку автодополнения. Чтобы включить автоподсказки, можно использовать дополнительные расширения или реализовать собственный JavaScript поверх Relevanssi.

Преимущества:

  • Индексирование контента, включая кастомные поля;
  • Настройка весов для релевантности;
  • Поддержка поиска по фразам и синонимам.

Ajax Search Lite

Этот плагин изначально создан для реализации живого поиска с автоподсказками. Ajax Search Lite легко настраивается, поддерживает фильтрацию по типам записей и таксономиям.

Преимущества:

  • Простая установка и настройка;
  • Красивый дизайн подсказок;
  • Поддержка мультиязычности.

Оптимизация и особенности внедрения автоподсказок

Кэширование результатов поиска

Частые AJAX-запросы могут нагрузить сервер, особенно при большом трафике. Для оптимизации стоит реализовать кэширование результатов в transient API WordPress или использовать сторонние кэш-системы.

Минимальная длина запроса и задержка

Рекомендуется запускать запрос только после ввода 2–3 символов и с небольшой задержкой (~300 мс), чтобы избежать лишних запросов при быстром наборе текста.

Безопасность и фильтрация данных

Не забывайте использовать функции sanitize_text_field и wp_unslash для очистки входящих данных, а также проверять права доступа при необходимости.

Заключение

Автоподсказки в поиске WordPress – простой, но мощный инструмент для улучшения юзабилити сайта. Вы можете реализовать их самостоятельно с помощью AJAX и REST API, либо воспользоваться готовыми решениями, такими как Ajax Search Lite или Relevanssi.

Если хотите расширить возможности поиска с минимальными усилиями, обратите внимание на Ajax Search Lite – плагин с отличным функционалом и поддержкой автодополнения.

Автоматическое отключение неиспользуемых тем в WordPress
08.02.2026
Автоматическое удаление неактивных пользователей WordPress
14.04.2026
Как добавить уникальные метатеги для каждого типа записи в WordPress
21.12.2025
Как автоматически удалять неиспользуемые плагины в WordPress
05.03.2026
Как создать фильтрованные запросы WordPress с поддержкой пагинации
24.03.2026