WordPress: Posts unterschiedlich darstellen

Ich hatte vor einiger Zeit schon einmal über eine Möglichkeit geschrieben, Posts unterschiedlich darzustellen. Leider kommt es bei diesem Code unter Umständen dazu, dass der erste Post im zweiten Loop nochmals ausgegeben wird. Um das zu verhindern, gibt es einen kleinen Code-Zusatz, der wahre Wunder wirkt.

<?php $my_query = new WP_Query('showposts=1');
while ($my_query->have_posts()) : $my_query->the_post(); $do_not_duplicate = $post->ID; ?>
   <div class="post1">
      <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
      <div class="metainfo">
         Datum: <?php the_time('d.m.Y'); ?> - Autor: <?php the_author(); ?>
      </div>
      <?php the_excerpt(''); ?>
   </div>
<?php endwhile; ?>

<?php $my_query = new WP_Query('showposts=7&offset=1');
while ($my_query->have_posts()) : $my_query->the_post();
if( $post->ID == $do_not_duplicate ) continue; ?>
   <div class="post">
      <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
      <?php the_excerpt(''); ?>
   </div>
<?php endwhile; ?>

Die wichtigsten Punkte stehen bei diesen Loops jeweils in der ersten Zeile. Anstatt von posts_per_page= wird nun showposts= eingefügt. In Verbindung mit offset=1 im zweiten Loop wird nun stets der Post aus dem ersten Loop ausgeschlossen. Genauso gut kann man nun aber auch zwei Posts im ersten und den Rest im zweiten Loop ausgeben, ganz wie es einem beliebt.

Published by

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.