Добавляем поиск по категориям на WordPress-блог

25 октября 2012
3 115

WordPress - в некоторых аспектах довольно простая система. Например, тут есть теги и категории, но нет элементарной возможности искать в конкретной категории. Поиск по умолчанию осуществляется по всем материалам. Что, конечно, может быть неудобным для ваших читателей. Сегодня мы добавим на сайт возможность поиска по категориям.

Это может пригодится, когда у вас на блоге накопилось много материала и разграничение поиска по рубрикам позволит посетителю быстрее найти материал на интересующую тему. Или вы решили сделать на WordPress интернет-магазин с группами товаров, ориентированными на разную аудиторию. Тут уж точно не обойтись без расширенного поиска. Разработка интернет магазина с нуля всегда учитывает такую необходимость.

А мы перейдём к нашему WordPress.

Поиск по рубрикам в WordPress

Добавляем поиск по категориям

Для добавления этой функции сначала отредактируем файл function.php. Добавим в него следующий обширный код:

Тут мы добавили сразу несколько функций, отвечающих за разные аспекты поиска по категориям. Теперь надо модифицировать саму форму поиска на блоге. Обычно она описывается в файле searchform.php и имеет id="searchform". Код поля ввода и кнопки "Поиск" у меня выглядит следующим образом:

После него я и добавляю вызов функции:

 А теперь по настройкам.

Ограничение списка рубрик

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

В примере 21, 23 и 24 - это включенные в список рубрики.

Выпадающий список или чекбоксы

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

Чтобы изменить отображение списка категорий, найдите в данном в начале статьи коде функцию select_cats. В её теле есть закомментированный участок. Раскомментируйте его, убрав метки /** и */. Это добавит к форме поиска выпадающий список рубрик, теперь надо убрать список с чекбоксами. Для этого закомментируйте или удалите следующий код в теле той же функции:

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

Related Posts Plugin for WordPress, Blogger...
Рубрики: Wordpress

5 комментариев к записи “Добавляем поиск по категориям на WordPress-блог”

  1. Ксения

    Информация супер! Спасибо! Но не могу скопировать ни один код( Почините пожалуйста!

    [Ответить]

  2. Артизан

    Наконец-то нашел более-менее хорошее освящение данной темы! Считаю что поиск по категориям и поиск внутри категорий - золотая жила для реализации не совсем стандартных схем построения сайта.

    [Ответить]

  3. Сергей (мой Twitter:  utema.ru)

    код нельзя скопировать

    [Ответить]

  4. Евгений

    Подскажите, пожалуйста, как сделать поиск по сайту на WordPress, который бы искал только по названию страниц, т.е по post_title в таблице WP_POST и/или по link_text?

    Возможна ли организация поиска на странице по разным формам? Например, одна форма поиска ПО НАЗВАНИЮ СТРАНИЦ, другая форма поиска ПО ТЕГАМ (Кластерам)?

    [Ответить]

    deSiter (мой Twitter:  deSiter)

    Можно-то можно, но очень затруднительно, поэтому по конкретной реализации ничего не подскажу.

    [Ответить]

Комментируйте - автору важно ваше мнение!

Дополнительно: