Wenn man eines in WordPress verstehen MUSS – dann ist es der WordPress Loop!
Da ich ebenfalls immer wieder Probleme mit der Verständlichkeit dieses essentiellen Codeabschnitts hatte, nehme ich mir jetzt die Zeit und werde meine Notizen gleich hier veröffentlichen ;)

In seiner eigentlichen, gekürzten Form sieht der WordPress Loop folgendermaßen aus:

 <?php
// The Loop
if (have_posts()) : while (have_posts()) : the_post();
...
endwhile; else:
...
endif;
?>

Eigentlich setzt sich der Grundbaustein des WordPress Loops aus einigen wenigen Befehlen zusammen.

Ein “while” Loop ist standard in etlichen Programmiersprachen, ebenso auch in PHP.

Was macht dieser WordPress Loop eigentlich?

  1. Der Loop überprüft ob es einige Artikel (have_posts()) gibt, die er anzeigen kann.
    -> “if” Abfrage
  2. Falls das zutrifft, startet der Loop.
  3. Die Funktion “the_post()” wird gestartet und setzt somit die Voraussetzung für weitere Funktionen im Grund-Loop.
    Sobald die Funktion “the_post()” die spezifizierten Wiederholungen durchlaufen hat, wird “have_posts()” beendet und der Loop stoppt.

So, der Grundbaustein eines jeden WordPress Loops ist somit erklärt, vielleicht aber noch nicht ganz verstanden.
Deshalb werde ich den WordPress Loop in einem Beispiel näher erklären, ich hoffe es wird verständlicher! ;)

Code-Safari im WordPress Loop

Hier der Code des Beispiels:

 <?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<div class="post" id="post-<?php the_ID(); ?>">
<h2><a href="<?php the_permalink(); ?>"
rel="bookmark" title="Permanent Link to <?php the_title_
attribute(); ?>"><?php the_title(); ?></a></h2>
<?php echo get_post_meta($post->ID, 'PostThumb',
true); ?>
<p class="meta">
<span>Posted on</span> <?php the_time('F jS,
Y'
); ?> <span>by</span> <?php the_author(); ?>
</p>
<?php the_content('Read Full Article'); ?>
<p><?php the_tags('Tags: ', ', ', '<br />'); ?>
Posted in <?php the_category(', '); ?>
<?php comments_popup_link('No Comments;',
'1 Comment', '% Comments'); ?></p>
</div>
<?php endwhile; ?>
<?php next_posts_link('Older Entries'); ?>
<?php previous_posts_link('Newer Entries'); ?>
<?php else : ?>
<h2>Nothing Found</h2>
<?php endif; ?>

Was denkt sich der Loop eigentlich??

1.

<?php if (have_posts()) : ?>

Gibt es überhaupt Artikel die ich anzeigen kann? Naja, sonst ist der restliche Code schließlich überflüssig…

2.

<?php while (have_posts()) : the_post(); ?>
<div class="post" id="post-<?php the_ID(); ?>">

Dann beginne ich mal den Loop, ABER nur so oft wie du mir vorgegeben hast!

Die Anzahl der darzustellenden Artikel könnt ihr im Dashboard unter “Einstellungen -> Lesen” festlegen.

3.

<h2><a href="<?php the_permalink(); ?>"
rel="bookmark" title="Permanent Link to <?php the_title_
attribute(); ?>"><?php the_title(); ?></a></h2>

Oh, ich darf endlich etwas auf der Seite anzeigen – und zwar den Titel des Artikels, sogar in der 2. Überschrift und mit Hyperlink.

4.

<?php echo get_post_meta($post->ID, 'PostThumb',
true); ?>


Aha, ein Custom Field! Der Nutzer hat mir durch “PostThumb” mitgeteilt (Eingabe zB beim Erstellen des Atikels im Dashboard), dass er ein Vorschaubild zu dem Artikel anzeigen möchte – Klar mach ich.


5.

<p class="meta">
<span>Posted on</span> <?php the_time('F jS,
Y'
); ?> <span>by</span> <?php the_author(); ?>
</p>

Jetzt werde ich die “Meta-Daten” zu dem Artikel anzeigen, das sind der aktuelle Monat, der aktuelle Tag und das aktuelle Jahr. Außerdem schreibe ich den Namen des Autors (“the_author()”)unter den Titel.

6.

<?php the_content('Read Full Article'); ?>

Endlich darf ich den ganzen Artikel anzeigen :)

7.

<p><?php the_tags('Tags: ', ', ', '<br />'); ?>
Posted in <?php the_category(', '); ?>
<?php comments_popup_link('No Comments;',
'1 Comment', '% Comments'); ?></p></div>

Achja, noch mehr Meta-Daten zu dem Artikel. Hier werde ich die vergebenen Tags, die Kategorie und die Anzahl der Kommentare anzeigen, sogar mit einem Link zu dem Kommentarbereich. Außerdem schließe ich das letzte DIV, der Artikelbereich ist somit wieder geschlossen.

8.

<?php endwhile; ?>

Hiermit beende ich diesen Durchlauf. Da zB fünf Artikel auf der Seite angezeigt werden sollen, mache ich diesen Durchlauf noch weitere vier Mal und habe die vorgeschriebenen Loops somit abgeschlossen.

9.

<?php next_posts_link('Older Entries'); ?>
<?php previous_posts_link('Newer Entries'); ?>

Falls es noch weitere als diese fünf Artikel gibt, werde ich Links zu den älteren bzw neueren Artikeln erstellen.

10.

<?php else : ?>

Waah – es gibt keine Artikel mehr??

11.

</p>
<h2>Nothing Found</h2>

Na dann gebe ich das mal bekannt – “Keine Artikel gefunden!”

12.

<?php endif; ?>

Juhuu, endlich FERTIG!!

Lange kann der WordPress Loop aber nicht entspannen, euer Theme ist mit vielen Loops vollgestopft! Hoffe ich konnte euch den Loop anschaulich erklären und ihr hattet Spaß bei dieser kleinen Lehrstunde ;)

Related Posts Plugin for WordPress, Blogger...
ÜBER DEN AUTOR

Roman

PG Hey, willkommen auf meinem Blog! Ich bin 24 Jahre alt und studiere Fahrzeug und Flugzeugtechnik an der FH München. In meiner Freizeit betreibe ich diesen Blog und gehe gerne fotografieren. Um mehr über mich und diese Seite zu erfahren, oder Kontakt mit mir aufzunehmen, habe ich die "About-Seite" eingerichtet. Viele Grüße