Как отображать сообщения, содержащие только выбранные термины таксономии в Wordpress - PullRequest
0 голосов
/ 04 мая 2019

Я пытаюсь добавить форму фильтра таксономии на страницу, используя метод $ _GET, чтобы перенести выбранные термины таксономии в tax_query.Если выбрано больше терминов, то должны возвращаться только сообщения, содержащие эти точные термины.Вместо этого я получаю все сообщения, которые имеют хотя бы 1 из выбранных терминов.

Это один массив, поэтому 'relation' => 'AND' здесь не будет работать.Поэтому вместо этого я попытался установить для параметра 'operator' значение 'AND', но это не дает мне никаких результатов после выбора любого из терминов.Я даже пытался вставить цикл foreach внутри запроса, чтобы создать новый массив tax_query для каждого члена, надеясь получить параметр relation для выполнения этой работы.Но это не сработало и на самом деле выглядело как плохая идея.

Это моя текущая настройка запроса:

get_template_part('partials/blog', 'filter');

$paged = get_query_var( 'paged', 1 );

$blog_args = array(
  'orderby' => 'date',
  'paged' => $paged,
  'posts_per_page' => 2
);
if(isset( $_GET['category'] ) ) {
  $blog_args['tax_query'] = array(
    'relation' => 'AND',
      array(
        'taxonomy' => 'category',
        'field' => 'slug',
        'terms' => $_GET['category'],
        'operator' => 'AND'
      ),
  );
}

$blog_query = new WP_Query($blog_args);

Если пользователь выбирает категорию, это значение передается на 'terms' в виде массива.

Я ожидал, что параметр 'operator' будет действовать как параметр 'relation', но это не тот случай, или я что-то не так делаю?

...