WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

Вывод записей из выбранной таксономии в поиске WP

Задача с помощью wp_dropdown_categories (хотя не обязательно именно с этой функцией) дать возможность пользователю выбирать таксономию сайта для поиска и выводить посты только из нее. Если не выбрано никакой таксономии - поиск должен осуществиться по всем категориям сайта.

Задаю параметры выпадашки:

$args = array(
...
'selected'    => $kat = get_query_var('cat'),
'name'        => 'cat',
'taxonomy'    => ['category', 'ad_category', 'event_cat', 'reestr_company', 'region_company', 'industry_category'],
'value_field' => 'term_id',
...
)

wp_dropdown_categories($args);

Инпут формы:

<input class="uk-width-expand src-input uk-width-1-1 uk-width-expand@m search-form__input" type="search" placeholder="Введите поисковый запрос" value="<?php echo get_search_query() ?>" name="s" id="s" autocomplete="off">

Далее в search.php по-идее мы принимаем эти данные. Создаю новый WP_Query, вывожу посты:

$new_post [
'post_type' => 'any',
$s = get_search_query();

 'tax_query' => array(
		array(
			'taxonomy' =>  ['category', 'ad_category', 'event_cat', 'reestr_company', 'region_company', 'industry_category'],
			'terms' => array($kat),
			'field' => 'id',
			'operator' => 'AND'
		)
	)

]

 $the_query = new WP_Query($new_post);

И далее цикл вывода

  if ($the_query->have_posts()) :  while ($the_query->have_posts()) : $the_query->the_post();

...

Не работает моя схема. Подскажите что не так.

0
Roman
11 месяцев назад
  • 0

    во-первых, при объявлении переменной $new_post у вас пропущен знак '='

    во-вторых, параметрах запроса исправьте вторую строку на
    's' => get_search_query(),

    в-третьих, из примера не понятно, как вы собираетесь получить на странице search.php значение переменной $kat.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация