Mehrere wp_query-Schleifen zeigen die ersten 5 Posts auf allen Seiten anstelle von älteren Posts an

Ich versuche, den neuesten Beitrag in einem separaten Layout hervorzuheben und in einem Maurerindex zu veröffentlichen. Es gibt 5 Posts pro Seite und ich bekomme auch die neuesten 5 Posts auf früheren Posts.

Ich hatte alle Pfosten in einer einzigen Schleife unter Mauerwerk Index. Ich habe versucht, das erste Element des Mauerwerks Index eine andere Breite über CSS-First-of-Type-Eigenschaft, aber es stört das Mauerwerk Layout. Dann entschied ich mich, einen separaten Loop für den ersten Post und einen zweiten mit Maurerlayout für den Rest der Posts zu verwenden, aber am Ende bekam ich die ersten 5 Posts auf jeder Seite, auf denen ältere Posts gezeigt werden sollten. Bitte geben Sie an, wie dies getriggers werden kann. Danke im Voraus!

 1, 'post_type' => 'albums', 'post_status' => 'publish', ); $query1 = new WP_Query($args1); //First Loop if ( $query1->have_posts() ) { while ( $query1->have_posts() ) { $query1->the_post();?>  <?php comments_template(); } } wp_reset_postdata(); echo'
'; //Query2 $args2 = array( 'offset' => 1, 'post_type' => 'albums', 'post_status' => 'publish', 'suppress_filters' => true ); $query2 = new WP_Query( $args2 ); //loop2 if ( $query2->have_posts() ) { while( $query2->have_posts() ) { $query2->the_post();?>
<?php comments_template(); } } //end second loop echo '
'; get_template_part( 'nav', 'below' );?>

UPDATE # 1: Wow! das hat funktioniert (ich habe $ paged Variable vor den Loops hinzugefügt):

  $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1; 

und dann in den args habe ich die offsets entfernt und stattdessen hinzugefügt:

  'paged' => $paged 

Aber jetzt bekomme ich einen doppelten letzten Post, weil ich den Offset in der zweiten Schleife entfernt habe. Bitte teilen Sie Ihre Ideen mit, wie das Duplikat entfernt werden kann. functioniert das: Offset in der zweiten Schleife in $ args2 hinzufügen, wenn es die erste Seite ist? Lass mich es versuchen und ich werde erzählen, wie das funktioniert hat.

UPDATE # 2 Ich habe diesen Code hinzugefügt, um einen Offset hinzuzufügen und den letzten Beitrag auf der ersten Seite zu entfernen:

 if ( $paged == 1 ){ $offset=1; } else{ $offset=''; } 

Das hat mir geholfen, aber ich bekomme in den vorherigen Posts ein Postduplikat. Ich muss noch herausfinden, warum das passiert (und würde mich freuen, wenn Sie Ihre Ideen teilen können). Ruhe alles gut aus.

Solutions Collecting From Web of "Mehrere wp_query-Schleifen zeigen die ersten 5 Posts auf allen Seiten anstelle von älteren Posts an"

Vielleicht überprüfen Sie, ob innerhalb der ersten Schleife paged oder nicht basiert auf dem Wert, den Sie für die Argumente “Beiträge pro Seite” festgelegt haben. Wenn nicht seitenweise die Ergebnisse über Ihre Vorlage angezeigt werden, wenn sie ausgelagert wird, dann tu nichts …

 //First Loop if ( $query1->have_posts() ) { while ( $query1->have_posts() ) { $query1->the_post();?> < ?php if ( is_paged() == false ) { get_template_part( 'entry-slide',get_post_type('albums') ); } ?> < ?php comments_template(); } } wp_reset_postdata(); 

Ich habe das nicht getestet. Referenz für is_paged (); Bedingung: http://codex.wordpress.org/Function_Reference/is_paged

Dies half dabei, das Problem zu beseitigen, dass die gleichen ersten 5 Beiträge auf allen Seiten wiederholt wurden:

 $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1; 

und dann in den args habe ich die offsets entfernt und stattdessen hinzugefügt:

‘paged’ => $ paged

Um zu vermeiden, Post-Duplikat auf der ersten Seite zu bekommen:

  if ( $paged == 1 ){ $offset=1; } else{ $offset=''; } 

Dies gibt immer noch ein Post-Duplikat auf den vorherigen Seiten. Also muss ich noch eine komplette Lösung bekommen.