Поиск сообщений по нескольким значениям пользовательской таксономии

У меня есть таможенная таксономия под названием Страна. Значения включают в себя названия отдельных стран, а также поле "Международный", которое должно представлять все страны.

Вот как это должно работать. Если я посмотрю по значению "Международный", он должен найти все сообщения, которые имеют только "Международный" в качестве значения страны. Однако, если я посмотрю по значению "США", он должен найти все посты со значением страны "США" плюс все посты со значением страны "Международный", отфильтровывая любые дублирующиеся посты.

Я мог бы стать международным в качестве родителя для всех других страновых ценностей, но на самом деле это окажет обратное влияние, так как нахождение постов International также подтянет посты, предназначенные, например, для США. Я полагаю, у меня может быть что-то вроде ниже,

query_posts( array(
  "tax_query" => array(
    array(
      "taxonomy" => "country",
      "field" => "slug",
      "terms" => array( "international", "usa" ),
      "operator" => 'AND'
    )
  )
) );

Но я должен сделать это для всех ценностей страны? Или как сделать это условно, только если значение поля не "Международное"?

1 ответ

Возможно, сделайте что-нибудь, что будет зацикливать весь ваш фильтр и каждый раз создавать новый массив фильтра query_post. Я не понимаю, как вы называете страну "международной", возможно, есть другой подход к тому, чего вы пытаетесь достичь.

if ($filter)
        {
        $filterArray = array(
            'relation' => 'AND',
        );
        foreach($filter as $item)
            {
              //IF Statement here
            array_push($filterArray, array(
                'key' => 'country',
                'value' => $item,
                'compare' => '='
            ));
            }
        }
Другие вопросы по тегам