Vermeiden Sie doppelte Einträge von WP_Query mit Taxonomien

Bei einem Blog mit mehreren Kategorien (wie “Sport”, “Natur” usw.) habe ich dann eine benutzerdefinierte Taxonomie erstellt, die es mir ermöglicht, Artikel in bestimmten Bereichen meines Blogs mit Begriffen wie “Slideshow” zu zeigen. , “Sidebar-Highlight”, “Top-Kategorie” usw.

In meiner Seitenleiste habe ich einen Bereich erstellt, in dem Artikel (aus derselben Kategorie, sagen wir “Natur”) mit zwei verschiedenen Loops angezeigt werden. Die erste zeigt nur einen Artikel (der erste in chronologischer Reihenfolge, aus der Kategorie nature und der auch unter dem Begriff “sidebar-highlight” Taxonomie ist) mit einem vorgestellten Bild, Titel und Ausschnitt, während der zweite nur den neuesten zeigt 3 Artikel aus der Kategorie Natur. Um Duplikate zu vermeiden, habe ich den folgenden Code verwendet:

$nature_loop_1 = new WP_Query( array (

  'category_name' => 'nature', 'tax_query' => array ( array ( 'taxonomy' => 'highlight', 'field' => 'slug', 'terms' => 'sidebar-highlight', 'operator' => 'IN' ) ), ) ); $nature_loop_2 = new WP_Query( array ( 'category_name' => 'nature', 'tax_query' => array ( array ( 'taxonomy' => 'highlight', 'field' => 'slug', 'terms' => 'sidebar-highlight', 'operator' => 'NOT IN' ) ), ) ); 

Während dies funktioniert, bedeutet dies, dass Artikel von “sidebar-highlight” niemals in der zweiten Schleife angezeigt werden, egal wann sie gepostet wurden. Also habe ich mich gefragt, ob es irgendwie möglich ist, Duplikate zu vermeiden und gleichzeitig Artikel von “sidebar-highlight” zuzulassen.

Danke im Voraus.

Solutions Collecting From Web of "Vermeiden Sie doppelte Einträge von WP_Query mit Taxonomien"

post__not_in die Post-ID aus der ersten Abfrage als post__not_in Parameter, um sie von der zweiten Abfrage auszuschließen.

 $nature_loop_1 = new WP_Query( array ( 'category_name' => 'nature', 'tax_query' => array ( array ( 'taxonomy' => 'highlight', 'field' => 'slug', 'terms' => 'sidebar-highlight', 'operator' => 'IN' ) ), ) ); $exclude = $nature_loop_1->post->ID; $nature_loop_2 = new WP_Query( array ( 'category_name' => 'nature', 'post__not_in' => array( $exclude ) ) );