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

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

HIT

28.04.2017

6955

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;}

Поделиться в соц. сетях:

  • Похожие записи
  • Комментарии
  • Вложения
Upgrade WC

Upgrade WC

Очередная серия улучшений (upgrade) плагина WC. Буду добавлять по мере изучения новые решения. Поиск по SKU (артикулу) Из коробки WC не ищет по артикулам (SKU). Но достаточно установить плагин Search Читать далее »

/
Поиск по сайту

Поиск по сайту

Поиск по сайту — важнейший инструмент позволяющий находить на сайте любую информацию. Плагины расширяющие функционал поиска Relevanssi — A Better Search (100 000) — улучшает и расширяет результаты поиска, более Читать далее »

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

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

Реализуем скрытый поиск, т.е. форма поиска изначально не показана и вызывается нажатие кнопки. Форму поиска и подложку вставляем в шапку (например, после открытия 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 минут.