Complex WP_Query (zwei Post-Typen und mehrere Operatoren)

Ich möchte zwei verschiedene Post-Typen in der gleichen Abfrage anzeigen … bisher nichts Seltsames. Aber ich möchte erklären, was Taxonomien beinhalten und was für beide Post-Typen ausschließen, so möchte ich beispielsweise Posts aus der Kategorie “16” anzeigen, die aber auch nicht zu “19” gehören, und Portfolio-Items aus Taxonomie “32”, die nicht gleichzeitig zu “34” gehören.

Ich dachte, das ist der richtige Weg:

$args = array( 'post_status' => 'publish', 'posts_per_page' => -1, 'orderby' => 'date', 'tax_query' => array( 'relation' => 'OR', array( 'relation' => 'AND', array( 'taxonomy' => 'category', 'field' => 'term_id', 'terms' => array( 16 ), 'operator' => 'IN' ), array( 'taxonomy' => 'category', 'field' => 'term_id', 'terms' => array( 19 ), 'operator' => 'NOT IN' ), ), array( 'relation' => 'AND', array( 'taxonomy' => 'portfolio_category', 'field' => 'term_id', 'terms' => array( 32 ), 'operator' => 'IN' ), array( 'taxonomy' => 'portfolio_category', 'field' => 'term_id', 'terms' => array( 34 ), 'operator' => 'NOT IN' ), ), ), ); 

aber es funktioniert nicht. Irgendwelche Hinweise darauf?

Solutions Collecting From Web of "Complex WP_Query (zwei Post-Typen und mehrere Operatoren)"

Versuchen Sie es so auszuführen, überprüfen Sie die Ergebnisse. Stellen Sie außerdem sicher, dass genügend Beiträge vorhanden sind, um Ergebnisse zu erzielen.

 $args = array( 'post_status' => 'publish', 'posts_per_page' => -1, 'orderby' => 'date', 'tax_query' => array( 'relation' => 'OR', array( 'relation' => 'AND', array( 'taxonomy' => 'category', 'field' => 'term_id', 'terms' => array( 16 ), 'operator' => 'IN' ), array( 'taxonomy' => 'category', 'field' => 'term_id', 'terms' => array( 19 ), 'operator' => 'NOT IN' ), ), array( 'relation' => 'AND', array( 'taxonomy' => 'portfolio_category', 'field' => 'term_id', 'terms' => array( 32 ), 'operator' => 'IN' ), array( 'taxonomy' => 'portfolio_category', 'field' => 'term_id', 'terms' => array( 34 ), 'operator' => 'NOT IN' ), ), ), ); $wp_query = new WP_Query(); echo '
'; print_r($wp_query); exit;