Как сделать автоподсказку в WordPress для поиска

Автоподсказка (autocomplete) в поиске сайта значительно улучшает пользовательский опыт, позволяя быстрее находить нужный контент. В WordPress стандартный поиск не поддерживает автоподсказки, но это можно легко исправить с помощью кастомной реализации или готовых плагинов. В этой статье подробно разберём, как добавить автоподсказку в поиск WordPress с примерами кода и рекомендациями по плагинам.

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

Когда пользователь начинает вводить запрос, автоподсказка помогает:

  • Сократить время на ввод запроса;
  • Предложить популярные или релевантные варианты;
  • Уменьшить вероятность ошибок при вводе;
  • Повысить конверсию и удобство использования сайта.

Для сайтов на WordPress с большим количеством контента это особенно актуально.

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

Подключение скрипта автоподсказки

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

function wordpresses_autocomplete_scripts() {
    wp_enqueue_script('jquery-ui-autocomplete');
    wp_enqueue_script('wordpresses-autocomplete', get_template_directory_uri() . '/js/autocomplete.js', ['jquery', 'jquery-ui-autocomplete'], null, true);
    wp_localize_script('wordpresses-autocomplete', 'wordpresses_ajax_object', [
        'ajax_url' => admin_url('admin-ajax.php'),
        'nonce' => wp_create_nonce('wordpresses_autocomplete_nonce')
    ]);
}
add_action('wp_enqueue_scripts', 'wordpresses_autocomplete_scripts');

В этом коде мы подключаем jQuery UI Autocomplete и наш скрипт, а также передаём параметры для AJAX.

JavaScript для автоподсказки (autocomplete.js)

jQuery(document).ready(function($) {
    $('#searchform input[name="s"]').autocomplete({
        source: function(request, response) {
            $.ajax({
                url: wordpresses_ajax_object.ajax_url,
                method: 'POST',
                dataType: 'json',
                data: {
                    action: 'wordpresses_autocomplete_search',
                    nonce: wordpresses_ajax_object.nonce,
                    term: request.term
                },
                success: function(data) {
                    response(data);
                }
            });
        },
        minLength: 2
    });
});

Здесь мы используем jQuery UI Autocomplete для поля поиска с именем s, отправляя запрос на сервер с введённым текстом.

Обработка AJAX-запроса на сервере

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

function wordpresses_handle_autocomplete() {
    check_ajax_referer('wordpresses_autocomplete_nonce', 'nonce');

    $term = isset($_POST['term']) ? sanitize_text_field(wp_unslash($_POST['term'])) : '';
    if (strlen($term) < 2) {
        wp_send_json([]);
        wp_die();
    }

    $args = [
        's' => $term,
        'post_type' => 'post',
        'posts_per_page' => 10,
        'post_status' => 'publish'
    ];
    $query = new WP_Query($args);
    $results = [];

    if ($query->have_posts()) {
        while ($query->have_posts()) {
            $query->the_post();
            $results[] = get_the_title();
        }
        wp_reset_postdata();
    }

    wp_send_json($results);
    wp_die();
}
add_action('wp_ajax_wordpresses_autocomplete_search', 'wordpresses_handle_autocomplete');
add_action('wp_ajax_nopriv_wordpresses_autocomplete_search', 'wordpresses_handle_autocomplete');

Функция ищет записи по введённому термину и возвращает массив заголовков, которые показываются в автоподсказке.

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

Если вы хотите быстро внедрить автоподсказку без кодинга, можно использовать плагины. Вот несколько популярных и удобных вариантов:

1. SearchWP Live Ajax Search

Плагин SearchWP расширяет возможности стандартного поиска и поддерживает автоподсказки с отображением сниппетов и миниатюр. Имеет гибкие настройки и интеграцию с большинством тем.

2. Ajax Search Lite

Бесплатный и простой в использовании плагин, который добавляет AJAX-поиск с автоподсказками и фильтрацией по категориям. Хорошо подходит для небольших и средних сайтов.

3. WPSearch Autocomplete (пример с WPSHOP)

Если вы используете продукты WPSHOP, обратите внимание на плагин WPSearch Autocomplete. Он интегрируется с WooCommerce и другими плагинами, поддерживает подсветку совпадений и удобный интерфейс.

Советы и рекомендации по кастомизации автоподсказки

Оптимизация скорости запросов

При большом объёме данных важно оптимизировать запросы для автоподсказки. Используйте кэширование результатов, ограничивайте количество возвращаемых вариантов и применяйте индексацию поисковых данных (например, через SearchWP).

Поддержка кастомных типов записей

Если на сайте используются собственные типы записей (Custom Post Types), добавьте их в параметры запроса, чтобы автоподсказка включала их:

$args = [
    's' => $term,
    'post_type' => ['post', 'product', 'news'],
    'posts_per_page' => 10,
    'post_status' => 'publish'
];

Это расширит поиск и сделает подсказки более релевантными.

Использование фильтров и хуков для гибкости

Для расширения функционала можно добавить фильтры для обработки результатов перед отправкой клиенту. Например:

function wordpresses_filter_autocomplete_results($results) {
    // Добавляем префикс к каждому результату
    foreach ($results as &$result) {
        $result = '🔍 ' . $result;
    }
    return $results;
}
add_filter('wordpresses_autocomplete_filter_results', 'wordpresses_filter_autocomplete_results');

В обработчике AJAX потом примените этот фильтр к массиву результатов перед wp_send_json().

Выводы

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

Подробнее о плагинах и инструментах для улучшения поиска можно узнать на WPSHOP.

Решение проблемы: не работает визуальный редактор Gutenberg в WordPress
08.12.2025
Как удалить неиспользуемые мета данные в WordPress для ускорения сайта
10.11.2025
Оптимизация кода в WordPresses: эффективное использование хуков и фильтров
02.11.2025
Как создать динамический список постов с фильтром по таксономии в WordPress
13.01.2026
Запрет доступа по IP в WordPress через .htaccess: решение задачи защиты
27.12.2025