@artyom_jeman

Wordpress — как сделать поиск без перезагрузки страницы?

Всем доброго дня.
Необходимо сделать поиск на сайте Wordpress чтобы без перезагрузки страницы в этом же окне показывало результаты поиска в зависимости от того что введено в поле.
Т.е. вводим текст в поле поиска и результаты автоматически меняются.
Можете рассказать про алгоритм такого поиска?
  • Вопрос задан
  • 693 просмотра
Пригласить эксперта
Ответы на вопрос 1
Для начала, вам нужно добавить ajax-обработчик в functions.php (но я рекомендовал бы оформить как плагин). Потом, уже в зависимости от того, как вы хотите искать. Можно просто при помощи WP_Query получать нужные данные, а можно получать напрямую из таблиц + возможно какой-нибудь кэширующий уровень. Все это отдается клиенту, и вы просто обновляете информацию в нужном месте.

На клиенте у вас должен быть скрипт, который будет слушать события клавиатуры в нужном вам поле ввода. При каждом таком событии, если предыдущее было 2-3 секунды назад (чтобы предотвратить ненужные и частые срабатывания) шлем запрос на сервер, передавая WP имя вашего ajax-экшена при помощи параметра 'action' в POST или GET.

По умолчанию у WP нет такого функционала (и расширить тоже нельзя), поэтому у вас будет нативный вариант без ajax, и тот, что вы сделаете самостоятельно, как надстройку.

Обработчики ajax-запросов добавляются так:
add_action('wp_ajax_{ajax-action-name}', 'your-function');

Само собой, это должно вызываться в обработчике экшена init (или plugins_loaded).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы