While-Artikel – if-statement

Ich möchte eine Liste von Artikeln zeigen, aber ich möchte an erster Stelle meinen zweiten Artikel und danach den letzten Artikel zeigen.

ZB: Artikel 1 Artikel 2 Artikel 3 Artikel 4: Artikel 2 Artikel 1 Artikel 3 Artikel 4

Ich benutze diese while-Schleife:

 have_posts()) : $the_query -> the_post(); $i++; if ($i==2) { echo 'Article2: '.the_title(); } if ($i==1) { echo 'Article1: '.the_title(); } endwhile; ?> 

Aber es macht: Artikel 1 Artikel2

Ich möchte dies verdeutlichen: Artikel 2 Artikel 1

Vielen Dank im Voraus!

PS: Ich möchte dies tun, weil ich verschiedene Positionen von Artikeln (wie CNN) möchte und ich möchte nicht WP_query für alle meine 34 Artikel auf der Homepage wiederholen … Aus diesem Grund verwende ich if-statement.

Wenn Sie denken, dass dies keine gute Frage ist, bitte nicht -1, ich werde meinen Beitrag löschen, wenn Sie möchten.

Solutions Collecting From Web of "While-Artikel – if-statement"

Bereiten Sie die Abfrage vor, bevor Sie sie durchlaufen:

 $first = array_shift( $the_query->posts ); $second = array_shift( $the_query->posts ); // now re-add in reverse order array_unshift( $the_query->posts, $first ); array_unshift( $the_query->posts, $second ); // this is now the first item while ($the_query -> have_posts()) : $the_query -> the_post(); // regular loop 

Sie können auf das Array von Posts mit $ the_query-> posts zugreifen:

 < ?php $i = 0; $the_query = new WP_Query( 'showposts=35&offset=0' ); // swap post 1 with post 2 $temp_post = $the_query->posts[0]; $the_query->posts[0] = $the_query->posts[1]; $the_query->posts[1] = $temp_post; while ($the_query->have_posts()) : $the_query ->the_post(); ?> // do your regular loop < ?php endwhile; ?>