/ Wordpress / Поиск по категориям

Поиск по категориям

HIT

28.04.2017

7322

10

Стандартный поиск WordPress ищет по всему сайту. Добавим в поисковую форму выбор категории сужающий сектор поиска.

Поиск по категориям WordPress

Для поиска по категория WP в строку запроса необходимо добавить параметр &cat=37 (37 — ID категории). Для этого нужно в форму поиска добавить select с выбором категории (вставлять лучше перед основным input).

<select name="cat" id="seacategory">
<option value="">все категории</option>

<?php $cats = get_categories('child_of=48','&hide_empty=1');
foreach ($cats as $cat) : ?>

<option value="<?php echo $cat->cat_ID; ?>"><?php echo $cat->cat_name; ?></option>

<?php endforeach; ?>
</select>

Если нужно выводить все категории убираем параметр — ‘child_of=48’,

Поиск по категориям товаров Woocommerce

Для реализации подобного функционала для поиска по категориям товаров woocommerce — используем такую форму:

<form method="get" id="searchform" class="searchform" action="<?php echo esc_url( home_url( '/' ) ); ?>" role="search">

	<?php if (class_exists('WooCommerce')) : ?>
	
		<?php
		if(isset($_REQUEST['product_cat']) && !empty($_REQUEST['product_cat']))	{
			$optsetlect=$_REQUEST['product_cat'];
		} else {
			$optsetlect=0;
		}
		
		$args = array(
			'show_option_all' => esc_html__( 'Все категории', 'woocommerce' ),
			'hierarchical' => 1,
			'depth' => 2,
			'class' => 'cat',
			'echo' => 1,
			'value_field' => 'slug',
			'selected' => $optsetlect
		);
		$args['taxonomy'] = 'product_cat';
		$args['name'] = 'product_cat';
		$args['class'] = 'cate-dropdown hidden-xs';
		
		wp_dropdown_categories($args);
		?>

		<input type="hidden" value="product" name="post_type">
	
	<?php endif; ?>

	<input type="text" name="s" class="" id="s2" value="<?php echo get_search_query(); ?>" placeholder="Поиск по товарам.." />

	<button type="submit" class="pic-sea" value=""><i class="fa fa-search"></i></button>

</form>

Стили формы

#searchform select {
    float: left;
    width: 30%;
    border: none;
    border-right: 1px solid #eee;
}

#searchform input {float: left; width: 60%;}

#searchform .pic-sea {
  padding: 8px 35px;
  border-radius: 0px 2px 2px 0px;
  border: none;
  float: left;
  width: 10%;
  background-color: #111;
  transition: background-color .3s ease;
  -webkit-transition: background-color 0.3s ease 0s;
  color: #fff;
  z-index: 76;
  cursor: pointer;
}

#searchform .pic-sea .fa {color: #fff !important; margin: 0 !important;}

#searchform .pic-sea:hover {background-color: #000;}
[site-socialshare]
  • Похожие записи
  • Комментарии
  • Вложения
Категории в результатах поиска

Категории в результатах поиска

Выведем в результатах поискового запроса категории. Категории будут выведены перед найденными записями. Категории в результатах поиска Вставляем в шаблон вывода результатов поиска (search.php), перед началом цикла if(have_posts()) : В данном Читать далее »

Кнопка всплывающего поиска (+ курсор в поиске)

Кнопка всплывающего поиска (+ курсор в поиске)

Реализуем скрытый поиск, т.е. форма поиска изначально не показана и вызывается нажатие кнопки. Форму поиска и подложку вставляем в шапку (например, после открытия div main) Делаем кнопку или пункт меню Читать далее »

Варианты при вводе запроса в поиск

Варианты при вводе запроса в поиск

При вводе поискового запроса удобно чтобы сразу выводились несколько вариантов с ссылками на страницы с искомым словосочетанием. Реализуем это минимальными действиями. Подлючение скрипта и стилей Подключаем все необходимые стили и Читать далее »

/

Добавить комментарий

10 комментариев

  1. Макс

    Подскажите, а как при поиске отсортировать записи по просмотрам?
    от плагина есть произвольное поле views. 
    В форме указывается поисковое слово + выбор по просмотрам + по убыванию.
    Проблема только в обработчике, который никак не сортирует после запроса записи по просмотрам, не могли бы вы написать об этом?

    1. Alexandr

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

  2. Рося

    Спасибо! Спаситель)

  3. Максим

    Здравствуйте. А как сделать поиск по нескольким категориям? Спасибо!

    1. Alexandr

      Не пробовал. Я считаю, что это уже скорее функционал фильтрации нежели поиска.

  4. Юрий

    Спасибо! Давно хотел это освоить! Смотрю в темах стоит в шапке поиск и по категориям, искал плагин по Woocommerce  но безрезультатно.  Еще раз спаибо!

  5. Valer54

    Спасибо за решение. Один вопрос — как сделать сортировку категорий по алфавиту?

    1. Alexandr

      У функции wp_dropdown_categories есть параметры order (ASC, DESC) и orderby (ID, name, slug, count, term_group). Добавьте эти параметры в $args. В Вашем случае нужно добавить:
      ‘orderby’ => ‘name’

  6. Егор

    Привет. А как сгруппировать поиск по записям с поиском по категориям? Ссылку на скрин прикрепил.
     

    1. Alexandr

      Добрый день! Видимо слетел функционал по добавлению картинки к комментарию. В Вашем комментарии скриншота нет.
      По поводу вопроса: необходимо в форму поиска (обычно шаблон searchform.php) добавить еще одно поле select (написано в начале статьи) с выбором категорий. Готового кода (всей формы) под рукой нет, как напишу — поделюсь.

Поиск по категориям
Предоплата товара
Рекомендации для васПредоплата товараOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.