Поиск сообщений по нескольким значениям пользовательской таксономии
У меня есть таможенная таксономия под названием Страна. Значения включают в себя названия отдельных стран, а также поле "Международный", которое должно представлять все страны.
Вот как это должно работать. Если я посмотрю по значению "Международный", он должен найти все сообщения, которые имеют только "Международный" в качестве значения страны. Однако, если я посмотрю по значению "США", он должен найти все посты со значением страны "США" плюс все посты со значением страны "Международный", отфильтровывая любые дублирующиеся посты.
Я мог бы стать международным в качестве родителя для всех других страновых ценностей, но на самом деле это окажет обратное влияние, так как нахождение постов 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' => '='
));
}
}