kann nicht mehrere Schleifen mit tax_query erhalten

Ich versuche, drei Loops zur Anzeige zu bringen. Sie gehören alle demselben Posttyp und derselben Taxonomiefamilie an. aber ich versuche die Taxonomie durch drei verschiedene Werte zu trennen.

$argsOwners = array( 'tax_query' => array(array('taxonomy' => 'position', 'field' => 'slug', 'terms' => 'senior-management' ))); $the_query_owners = new WP_Query( $argsOwners ); 

dann ich

  

dann ich

 $argsSales = array( 'tax_query' => array(array('taxonomy' => 'position', 'field' => 'slug', 'terms' => 'sales' ))); $the_query_sales = new WP_Query( $argsSales ); 

und ich wiederhole es noch einmal für die dritte Amtszeit von “admin”. Das Problem ist nur die erste Abfrage wird funktionieren. irgendwelche Ideen?

BEARBEITEN EDITIEREN

Ich denke, ich denke, was das Problem ist. Es hatte damit zu tun, ob man eingeloggt war oder nicht. Wenn ich eingeloggt wäre, würde ich nur die Abfrage für die Abfrage sehen. aber wenn ich ausgeloggt bin, dann bekomme ich alle 3 perfekt.

Solutions Collecting From Web of "kann nicht mehrere Schleifen mit tax_query erhalten"

Wie @TheDeadMedic sagte, du musst so arbeiten. in der Standardschleife wie:

 while( have_posts() ) : the_post endwhile; 

In diesem Fall wird die Schleife mit der Standardvariablen $wp_query . Da Sie jedoch benutzerdefinierte Abfragen while( $query_obj->have_posts() ) : $query_obj->the_post(); , müssen Sie while( $query_obj->have_posts() ) : $query_obj->the_post(); so wie das

Aber während Sie ein- und ausgeloggt sind, sollten Sie keine anderen Ergebnisse erhalten: S

Rufen Sie $obj->the_post() , im Gegensatz zu nur the_post() ? Beispielsweise;

 /* Senior Management */ $query_args = array( 'tax_query' => array( array( 'taxonomy' => 'position', 'field' => 'slug', 'terms' => 'senior-management' ) ) ); $query_obj = new WP_Query( $query_args ); while( $query_obj->have_posts() ) : $query_obj->the_post(); // do senior-management stuff here endwhile; /* Sales */ $query_args['tax_query'][0]['terms'] = 'sales'; $query_obj->query( $query_args ); while( $query_obj->have_posts() ) : $query_obj->the_post(); // do sales stuff here endwhile; /* Marketing */ $query_args['tax_query'][0]['terms'] = 'marketing'; $query_obj->query( $query_args ); while( $query_obj->have_posts() ) : $query_obj->the_post(); // do marketing stuff here endwhile; 

Wenn Sie für jede Schleife das gleiche “Zeug” verwenden, können Sie Ihren Code noch weiter reduzieren, indem Sie ihn in einem foreach über ein Array von Positionsbegriffen ausführen.