Einleitungstext auf Kategorieseiten – Variante 2
Dass das Einbinden einer Kategoriebeschreibung sinnvoll ist, hatte ich ja schon erwähnt. Auch dass es, wie immer bei WordPress mehrere Wege gibt dieses zu verwirklichen. Dies ist nun der zweite Weg.
Dieser zweite Weg ist der mit den meisten Gestaltungsmöglichkeiten. Man macht einfach einen normalen Post zu einem „sticky-Post“ einer Kategorie. Das kann sinnvoll sein, wenn man die Kategoriebeschreibung schon anderweitig im Template verwendet, zum Beispiel als meta-description oder wenn man ein Bild oder Links mit einbinden möchte. Für diesen Weg gibt es wie immer mehrere Möglichkeiten, man kann zum Beispiel in der Template-Datei achive.php oder category.php den gewünschten Text direkt hineinschreiben und dann den normalen Loop durchlaufen lassen. Aber das ist Unsinn und bläht die entsprechenden Theme-Dateien nur unnötig auf, bzw. erschwert deren Bearbeitung.
nicht so gute Variante
Die einfachste Veriante einer Kategoriebeschreibung ist hatte ich ja schon beschrieben. Eine weitere sehr einfache Alternative wäre es einen Post als “sticky-Post” auszuzeichnen. Der käme dann immer an Position Nummer 1, wenn die Kategorieseite aufgerufen wird. Allerdings fällt dieser Beitrag nicht weiter auf, der er sich nahtlos in die Optik der restlichen reinen Beitragsauflistung einfügt. Besser und schöner wäre es, wenn die gewünschte Kategoriebeschreibung über dem Kategorietitel stehen würde oder zwischen Kategorietitel und ersten Beitrag. Dazu eignet sich die Funktion “sticky-Post” aber leider nicht.
bessere Variante
Also muss man sie sich die gewünschte Beschreibung der Kategorie selber basteln. Einfach bei dem Beitrag, der als Kategoriebeschreibung fungieren soll, den Zeitstempel ändern. Es muss der älteste Post in der Kategorie sein. Dieser wird dann mit der Funktion wp_querry aufgerufen und an der Stelle im Theme positioniert, wo man ihn gerne hätte. Danach folgt dann der normale Loop. Fertig. Zugegeben, das klingt komplizierter als es ist.
Beispielcode
<?php
<h1><?php single_cat_title(); ?></h1>
// The Query
query_posts('cat=10&showposts=1&orderby=DESC');
// The Loop
while ( have_posts() ) : the_post();
echo 'the_content();
endwhile;
// Reset Query
wp_reset_query();
?>
// Start des normalen Loops ...
Mit diesem Codeschnipsel wird der Inhalt des Posts ausgegeben, der als Kategoriebeschreibung dienen soll, nicht aber der Titel, da man ja sonst zwei Titel direkt untereinander hätte. In dem Beispiel steht der Beschreibungstext direkt unter dem Kategorietitel. Aber das ist ja jedem selbst überlassen.
Update 15.11.2011
Diese Methode hat leider den Nachteil, dass dieser eine Post dann doppelt ausgeben wird. Aber auch hier kann man sich behelfen. Bei Texto.de gibt es eine einfache Lösung. Dort wird der entsprechende Beitrag einfach als duplicate Post gekennzeichnet und dann von WordPress kein zweites Mal ausgegeben.
[...] habe mal noch eine Variante um Kategoriebeschreibungen einzubinden [...]
Schöner Blogbeitrag, gefällt mir sehr gut.