Fügen Sie Beiträge von einigen Kategorien ein, während Sie von anderen ausgeschlossen werden

Ich kann Beiträge aus einigen Kategorien nicht erfolgreich filtern und gleichzeitig von anderen ausschließen. Der Code funktioniert perfekt, wenn nur Posts einer bestimmten Kategorie enthalten sind. Die einzubeziehenden Kategorien sind Unterkategorien und die ausgeschlossenen Kategorien sind Hauptkategorien (sie sind nicht Eltern der enthaltenen Unterkategorien)

Beispiele:

1) Verwenden Sie gleichzeitig category__in und category__not_in

 $wpid = get_category_id($_REQUEST['param']); $cat_arr = array($wpid); $args = array( 'category__in' => $cat_arr, 'category__not_in' => array(350,351), 'posts_per_page' => 10, 'post_status' => 'publish', 'suppress_filters' => 0 ); $the_query = new WP_Query( $args ); while ($the_query -> have_posts()){ . . } 

2) Verwenden Sie nur category__in mit negativen Werten:

 $wpid = get_category_id($_REQUEST['param']); $cat_arr = array($wpid); array_push($cat_arr, -350, -351); $args = array( 'category__in' => $cat_arr, 'posts_per_page' => 10, 'post_status' => 'publish', 'suppress_filters' => 0 ); $the_query = new WP_Query( $args ); while ($the_query -> have_posts()){ . . } 

Solutions Collecting From Web of "Fügen Sie Beiträge von einigen Kategorien ein, während Sie von anderen ausgeschlossen werden"

Sie könnten eine Taxonomie-Abfrage wie folgt verwenden:

 $args = array( 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'category', 'terms' => array(), 'operator' => 'IN' ), array( 'taxonomy' => 'category', 'terms' => array(), 'operator' => 'NOT IN', ), ), ); $query = new WP_Query( $args ); 

Dadurch werden Posts abgefragt, die sich im ersten Satz von Begriffen UND nicht im zweiten Satz befinden.

Probieren Sie diesen Code aus. Nicht getestet

 < ?php $args = array( 'tax_query' => array( 'relation' => 'AND', // logical relationship between taxonomy arrays array( // subcategories to exclude 'taxonomy' => 'category', 'field' => 'term_id', 'terms' => array(350, 351), 'operator' => 'NOT IN', // exclude 'post_parent' => 0 // top level only ), array( // categories to include 'taxonomy' => 'category', 'field' => 'term_id', 'terms' => array($cat_arr), // 'include_children' => false ) ), 'posts_per_page' => 10, // more lines if needed ); 

Ich habe suppress_filters weggelassen suppress_filters weil dies mit WP_Query nicht angemessen WP_Query .

'include_children' => false möchten Sie 'include_children' => false (im Code 'include_children' => false ) verwenden, wenn Sie keine Beiträge aus $cat_arr Unterkategorien $cat_arr .