WordPress: Der Loop im Theme Twenty Eleven

Drawn in Autosketch + pasting in words from Excel

Image via Wikipedia

Viele WordPress Nutzer hören den Begriff Loop häufig, ohne
dass sie genau wissen, was damit gemeint ist. Dabei ist das gar nicht so
kompliziert und WordPress.org Anwender können hier schnell ein paar
individuelle Einstellungen einbinden.

Mit Hilfe des Loop werden in WordPress die Artikel aufgerufen. Ich habe mir den Loop im neuen Theme Twenty Eleven einmal genauer angesehen, weil ich selber das Prinzip etwas besser verstehen will. Dieses Theme ist das Standarddesign des der neuen WordPress Version (also in Version 3.2).
Als erstes habe ich mir die Datei index.php (genau: DEINEWORDPRESSINSTALLATION\wp-content\themes\twentyeleven\index.php) angeschaut. Im neuen Theme Twenty Eleven ist der Loop nämlich hier enthalten. Twenty Ten hatte eine separate Datei mit dem Namen look.php.

Der Loop im Theme Twenty Eleven – Das Prinzip

Loop ist der englische Begriff für Schleife oder Kreislauf. WordPress nennt diesen Abschnitt des Programmcodes Loop, weil nur einmal eine Abfrage gestartete wird, beispielsweise eine Auswahl aller Artikel die zu einer Kategorie gehören, und diese Abfrage dann für alle Beiträge in einer Programmschleife wiederholt wird.

Standardmäßig werden auf der Startseite alle Artikel mit Titel, einem kurzen Textausschnitt und einem Link zum Weiterlesen angezeigt. Wie viele Artikel auf deiner Startseite angezeigt werden kannst du übrigens im Administrationsbereich unter dem Menüpunkt Lesen festlegen.

Der Loop im Theme Twenty Eleven – Die Elemente

Mit diesem Programmcode, den du in der Datei index.php (genau: DEINEWORDPRESSINSTALLATION\wp-content\themes\twentyeleven\index.php) findest,  wird der WordPress-Loop gestartet.

<?php twentyeleven_content_nav( 'nav-above' ); ?>
  <?php /* Start the Loop */ ?>
    <?php while ( have_posts() ) : the_post(); ?>
      <?php get_template_part( 'content', get_post_format() ); ?>
    <?php endwhile; ?>
<?php twentyeleven_content_nav( 'nav-below' ); ?>

Übersetzt in die menschliche Sprache heißt das so viel wie: Führe solange wie es Artikel in der Datenbank gibt die Abfrage aus. Wenn man also eine Kategorie anklickt, werden alle Beiträge, oder englisch Posts, geprüft. Wenn der Beitrag zur Kategorie gehört, wird er angezeigt, sonst wird er übersprungen. Analog passiert das gleiche, wenn, man im Archiv einen Monat auswählt. Alle Beiträge, die im ausgewählten Monat veröffentlicht wurden, werden angezeigt, alle anderen ausgelassen.

Alle weitern Elemente werden, zumindest für die Standardschablone, aus der Datei content.php (genau: DEINEWORDPRESSINSTALLATION\wp-content\themes\twentyeleven\content.php) gelesen.

Der Titel des Beitrags wird als Überschrift (h1-Tag) und als Link angezeigt, abhängig davon, ob es sich um einen Beitrag handelt, der immer oberster Stelle stehen soll (sticky) oder um einen normalen Beitrag:

<header>
  <?php if ( is_sticky() ) : ?>
    <hgroup>
 <h1><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h1>
 <h2><?php _e( 'Featured', 'twentyeleven' ); ?></h2>
    </hgroup>
  <?php else : ?>
 <h1><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h1>
  <?php endif; ?>

Das Datum der Veröffentlichung und der Autor, also Metadaten, werden ausgegeben:

<?php if ( 'post' == $post->post_type ) : ?>
  <div>
   <?php
 printf( __( '<span>Gesendet am </span><a href="%1$s" rel="bookmark"><time datetime="%2$s" pubdate>%3$s</time></a> <span> by </span> <span><a href="%4$s" title="%5$s">%6$s</a></span>', 'twentyeleven' ),
 get_permalink(),
 get_the_date( 'c' ),
 get_the_date(),
 get_author_posts_url( get_the_author_meta( 'ID' ) ),
 sprintf( esc_attr__( 'View all posts by %s', 'twentyeleven' ), get_the_author() ),
 get_the_author()
 );
   ?>
  </div><!-- .entry-meta -->
<?php endif; ?>

Ganz wichtig, der Artikelinhalt wird angezeigt. Entweder in Kurzform oder vollständig:

<?php if ( is_search() ) : // Only display Excerpts for Search ?>
<div>
  <?php the_excerpt(); ?>
</div><!-- .entry-summary -->
<?php else : ?>
<div>
  <?php the_content( __( 'Continue reading <span>&rarr;</span>', 'twentyeleven' ) ); ?>
  <?php wp_link_pages( array( 'before' => '<div>' . __( '<span>Pages:</span>', 'twentyeleven' ), 'after' => '</div>' ) ); ?>
</div><!-- .entry-content -->
<?php endif; ?>

Weitere Metadaten können veröffentlicht werden, zum  Beispiel die Kategorie und die Anzahl an Kommentaren.

<footer>
  <?php if ( 'post' == $post->post_type ) : // Hide category and tag text for pages on Search ?>
   <?php
 /* translators: used between list items, there is a space after the comma */
 $categories_list = get_the_category_list( __( ', ', 'twentyeleven' ) );
 if ( $categories_list ):  
   ?>
 <span>
  <?php printf( __( '<span>Gesendet in </span> %2$s', 'twentyeleven' ), 'entry-utility-prep entry-utility-prep-cat-links', $categories_list );
   $show_sep = true; 
    ?>
 </span>
  <?php endif; // End if categories ?>
...
</footer><!-- #entry-meta -->

So sieht das dann aus

Ich habe in den angesprochenen Dateien, also in der  index.php und in der content.php, die englischen Begriffe in deutsche  abgeändert. Mein Beispielbeitrag sieht dann so aus:

Twenty Eleven WordPress.com Theme

Twenty Eleven WordPress.com Theme

Das war natürlich nur ein ganz kurzer Abriss. Es gibt noch jede Menge weiterer Funktionen und Möglichkeiten den Look in WordPress zu nutzen.

Liebe Grüße

Astrid

About these ads

2 Gedanken zu „WordPress: Der Loop im Theme Twenty Eleven

Die Kommentarfunktion ist geschlossen.