Beiträge einer bestimmten Kategorie in der Sidebar ausgeben und mit einem Bild via benutzerdefinierte Felder versehen.
Hier: ein Weblog z.B. mit der Kategorie Leseempfehlungen. Das Ergebnis könnte so aussehen:
Und so wird’s gemacht:
Wer sich sich einmal die Innereien von WordPress angeschaut bzw. einen Blick in Templates (themes) geworfen hat, wird sicherlich schon Bekanntschaft mit dem „Loop“ gemacht haben. Der Loop ist das php-Konstrukt, mit welchem die Postings ausgegeben werden. In den meisten Fällen sieht er so aus:
Übersetzt heißt das: Wenn du postings hast dann mache für jedes Posting „Kung-Fu“ und wenn du nicht hast, dann schreibe „keine passenden Beiträge gefunden“.
Diese Schleife (Loop) durchläuft listet dann – wie von den meisten Blogs bekannt – alle Beiträge der Reihe nach auf, die der Autor geschrieben hat. WordPress kann natürlich kein richtiges KungFu, an dieser Stelle habe ich „KungFu“ einfach mal als Platzhalter für alles eingefügt, was Wordrpess mit den gefunden Postings machen soll, z.B. :
- den Inhalt ausgeben,
- den Namen des Autors,
- das Datum
- oder auch nur das Exzerpt
- und/ oder noch einige andere Dinge mehr
So weit ganz einfach.
Nun kommt es aber vor, dass man z.B. eine Kategorie angelegt hat, deren Inhalte man besonders hervheben möchte. Das könnte z.B. eine Kategorie mit dem Titel „Buchempfehlungen“ sein und der Wunsch die Postings, die dieser Kategorie zugeordnet sind, in der Sidebar gesondert auszugeben. Unter Umständen möchte man, im Unterschied zum „Hauptloop“ auch ein anderes KungFu und z.B. via benutzerdefinierte Felder noch ein Bild zum empfohlenen Buch ausgeben.
Im WordPress Codex werden verschiedene Möglichkeiten aufgelistet, wie man einen solchen Fall mit multiplen Loops lösen kann.
Ich habe es mit einer eigenen query so gemacht:
have_posts()) : $my_query->the_post();
$do_not_duplicate = $post->ID; ?>
ID, $key, true); ?>" alt="Photo: " />
weiterlesen
Der Code kann auch hier nochmal angeschaut und besser kopiert werden [Klick mich]
Update: 3.11.2008 – Aufgrund einer Anfrage warum das nicht funktioniert: Der Code funktioniert natürlich nicht, wenn ein Theme die Sidebar über widgets befüllt. Das hier ist kein Widget!