geschrieben von Micha am 16. Juni 2007 | 1 Kommentar
In meinen Semmelstatz werden immer die neuesten 20 Suchbegriffe angezeigt. In letzter Zeit kamen vermehrt Anfragen zu “The Loop”, obwohl ich den Loop höchstens 2-3 mal erwähnt habe. Damit der geneigte Sucher nun auch bei mir etwas über den Loop erfährt, werde ich erklären, was “The Loop” ist und was man damit tun kann.
Der einfache Loop
Wordpress benutzt den Loop, um Blogposts darzustellen und entsprechend der eingesetzten Tags zu formatieren. Und so sieht The Loop aus:
<?php
if (have_posts()) :
while (have_posts()) : the_post();
//irgendwelcher code
endwhile;
else :
//code falls keine post da ist
endif;
?>
Auf deutsch heißt das etwa: Wenn wir Beiträge haben, zeige die Beiträge, wenn keine Beiträge da sind, mach das, was hinter else: steht.
Template Tags
Um dem Nutzer Möglichkeiten zu geben, in seinem Template Beiträge und Seiten individuell darzustellen, wurden von Wordpress sogenannte “Template Tags” eingeführt, die innerhalb von The Loop verwendet werden. Template Tags sind nichts weiter als Worpress Funktionen, die bestimmte Informationen ausgeben. Eine vollständige Liste aller Template Tags findet ihr auf
http://codex.wordpress.org/Template_Tags. Um nun auf der Blogstartseite Beiträge darzustellen, müssen wir den Loop um Template Tags und eigenen HTML Code erweitern.
Der Beitragstitel
Für die Beitragsüberschrift verwenden wir gleich zwei Template Tags: the_permalink() und the_title().
...
<?php while (have_posts()) : the_post(); ?>
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanenter Link zu diesem Artikel"><?php the_title(); ?></a></h2>
....
Der Beitragstitel wird nun in einer Überschrift 2. Grades angezeigt, the_permalink() schreibt den Link zu dem Beitrag und the_title() gibt den Titel aus.
Beitragsinformationen
Wir möchten natürlich Informationen ausgeben, von wem und wann der Beitrag geschrieben wurde. Dafür stehen uns eine Menge Template Tags zur Verfügung. Ich verwende hier mal eine ungeordnete Liste, um die Infos auszugeben. Den Code unter die Überschrift einfügen.
<ul>
<li><?php the_time('d. F Y'); ?></li>
<li> <?php the_author() ?></li>
<li> <?php the_category(', ')?></li>
<li> <?php comments_popup_link('0 Kommentare', '1 Kommentar', '% Kommentare'); ?></li>
<?php edit_post_link('bearbeiten','<li>','</li>'); ?>
</ul>
Was bedeutet das nun im Einzelnen? the_time(‘d. F Y’) gibt uns das Datum (und auch die Uhrzeit wenn man will) des Beitrags aus. Wie ihr seht, hat man die Möglichkeit, mit Parametern innerhalb der Klammern sich die Template Tags anzupassen. In diesem Fall gibt the_time(‘d. F Y’) das Datum als 14. Mai 2007 aus. Mehr Informationen zum Datums- und Zeitformat findet ihr hier.
the_author() gibt Namen des Autors aus, the_category(‘, ‘) listet die Kategorie(n), in die der Beitrag eigeordnet wurde. Der Parameter in den Klammern steht für den Trenner bei mehreren Kategorien. comments_popup_link() fügt einen Link mit der Anzahl der Kommentare ein, bei dem beim Klicken die comments-popup.php (oder wenn die nicht da ist, die single.php) aufruft und direkt zur Überschrift “Ein Kommentar schreiben” springt (<h3 id="respond">). Der edit_post_link(‘bearbeiten’,'<li>’,'</li>’)
fügt ein link “bearbeiten” ein, wenn man selber angemeldet ist. Hier sind die Parameter Text, der ausgegeben werden soll, öffendes Tag und schießendes Tag.
Der Beitrag
Um den Beitrag auszugeben, haben wir zwei Möglichkeiten. Wir können
<?php the_content('Den ganzen Beitrag lesen ...'); ?>
benutzen. Das gibt uns den Inhalt aus. Wenn der <!–more–> Quicktag benutzt wurde, wird der Inhalt bis zum <!–more–> ausgegeben und ein Link mit dem angegebenen Text zur Einzelansicht des Beitrags eingefügt. Wir können aber auch
<?php the_excerpt(); ?>
verwenden. the_excerpt() gibt die ersten 55 Wörter des Beitrags aus. Parameter gibt es dafür keine.
Zum Abschluß noch die beiden Template Tags zur Seitennaviation und der Code, der ausgeführt wird, falls kein Beitrag gefunden wurde:
...
<?php endwhile; ?>
<div class="navigation">
<div class="alignleft"><?php next_posts_link('« Vorherige Einträge') ?></div>
<div class="alignright"><?php previous_posts_link('Nächste Einträge »') ?></div>
</div>
<?php else : ?>
<h2 class="center">Nicht gefunden</h2>
<p class="center">Sorry, aber du suchst gerade nach etwas, was hier nicht ist.</p>
<?php include (TEMPLATEPATH . "/searchform.php"); ?>
<?php endif; ?>
...
Nun sollte jeder die Funktionsweise von The Loop und den Template Tags verstanden haben. Natürlich kann man sich den Loop auch seinen eigenen Bedürfnissen anpassen. Um das zu erreichen, verwendet man die sogenannten Conditional Tags. Aber um das zu erklären, müßte ich erstmal in meinen Semmelstatz Suchergebnisse zu Conditional Tags finden
.