Как создать функциональность поиска по категориям в WordPress

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

Добавьте список категорий в форму поиска

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

Как создать функциональность поиска по категориям в WordPress

Это делается простым добавлением функции wp_dropdown_categories() в форму поиска. Все, что вам нужно сделать, это поместить следующий код в файл searchform.php вашей темы (это файл, где код формы поиска хранится по умолчанию, но это не всегда необходимо):

Где Select - можно заменить на свой произвольный текст.

Если в вашей теме нет файла searchform.php, попробуйте найти код формы поиска в файле header.php (или sidebar.php, это зависит от расположения формы поиска в вашем блоге), а затем замените его на приведенный выше код.

Если вы хотите узнать больше о функции wp_dropdown_categories(), вам следует прочитать Кодекс.

Добавьте категорию в параметры поиска

Попробуйте выполнить поиск с помощью нового окна поиска. Вы увидите, что ничего не изменилось, кроме url. Старый url содержит только параметр поиска (это "s"), а новый содержит еще один параметр - категорию (это "cat"). Новый url выглядит следующим образом:

Теперь нам нужно сказать WordPress, чтобы он понял параметр category и получил соответствующие посты. Добавьте следующий код в файл functions.php:

Здесь мы подключаемся к действию pre_get_posts. Это действие запускается, когда WordPress подготавливает запрос перед получением постов из базы данных. Наша подключенная функция выполняет следующие действия:

  • проверить, является ли текущий запрос поисковым
  • получить параметр категории. Обратите внимание, что если пользователь не выбрал ни одной категории (что означает поиск во всех категориях), то параметр category будет установлен в -1. Поэтому нам нужно проверить это, чтобы убедиться, что параметр category является положительным целым числом или пустой строкой, если категория не выбрана
  • добавить параметр category в массив параметров текущего запроса

Теперь вы можете обновить свой блог и попробовать поискать. Не забудьте выбрать категорию, чтобы сузить результаты поиска. Вы увидите, что функция поиска по категориям работает хорошо, как и ожидалось.

Заключение

Функция поиска по категориям очень полезна для некоторых типов WordPress-блогов, таких как сайты для скачивания или сайты электронной коммерции, где все содержимое хорошо распределено по категориям. Эта функция полезна для пользователей, поскольку они быстрее и точнее находят то, что им нужно. Внедрение поиска по категориям - это хороший способ улучшить пользовательский опыт на вашем сайте.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий