tax_query Operator leidet

Ich versuche, Beiträge nach mehreren Taxonomien zu filtern. Mein Code unten funktioniert gut, aber ihre Sache ist eine Sache, die ich nicht recht herausfinden kann. Wenn ich die Posts filtere, scheint es, dass sie nur die Posts anzeigen, die für alle meine Taxonomiebegriffe gelten.

Also, um mein Problem zu illustrieren: Sagen wir, ich habe einen Beitrag und dieser Beitrag ist “Montana”. Und Montana hat eine Regionstaxonomie von “region1”. Es hat auch eine ‘Population’ von ‘pop1’. Und wir haben einen anderen Post namens “Idaho” und sind in “region2” und ist in “pop1” und zusätzlich ist es auch in “pop2”.

Also ich meine Abfrage ausführen:

$myquery['tax_query'] = array( 'relation' => 'OR', array( 'taxonomy' => 'regions', 'terms' => array(region1), 'field' => 'slug', 'operator' => 'IN', ), array( 'taxonomy' => 'population', 'terms' => array(pop1), 'field' => 'slug', 'operator' => 'IN', ) ); query_posts($myquery); 

Alles funktioniert super … Idaho und Montana Beide zeigen sich. Also führe ich eine andere Abfrage aus, filtere diesmal nach einem anderen Populationsbegriff ‘pop2’ zusammen mit ‘pop1’.

 $myquery['tax_query'] = array( 'relation' => 'OR', array( 'taxonomy' => 'regions', 'terms' => array(region1), 'field' => 'slug', 'operator' => 'IN', ), array( 'taxonomy' => 'population', 'terms' => array(pop1,pop2), 'field' => 'slug', 'operator' => 'IN', ) ); query_posts($myquery); 

Jetzt sollten Idaho und Montana beide auftauchen? … aber sie tun es nicht. Nur Montana taucht auf, weil es ‘region1’ hat, aber Idaho taucht nicht auf, weil es nicht in region1 ist, noch hat es BEIDE ‘pop1’ und ‘pop2’.

Also meine Frage:

Ist es möglich, dass der Taxonomie-Operator funktioniert, wenn mindestens einer der Begriffe übereinstimmt und nicht alle wahr sein müssen?

Solutions Collecting From Web of "tax_query Operator leidet"

Ich bin mir nicht sicher, ob es einen Weg gibt, um ‘OR’ statt ‘AND’ zu verwenden. Alternativ können Sie Folgendes tun:

 $myquery['tax_query'] = array( 'relation' => 'OR', array( 'taxonomy' => 'regions', 'terms' => array('region1'), 'field' => 'slug', 'operator' => 'IN' ), array( 'taxonomy' => 'population', 'terms' => array('pop1'), 'field' => 'slug', 'operator' => 'IN' ), array( 'taxonomy' => 'population', 'terms' => array('pop2'), 'field' => 'slug', 'operator' => 'IN' ) ); query_posts($myquery);