Für Buchblogs: Artikel nach Erscheinen des Buches ausgeben

Lesezeit: 2 Minuten

Wordpress ordnet seine Artikel nach Erscheinungsdatum, beginnend beim neuesten ganz oben und beim ältesten als letztem Beitrag. Auf einem Buchblog möchtet ihr aber unter Umständen die Buchrezensionen zu einem Autor nicht nach Erscheinungsdatum des Artikels, sondern nach Erscheinen des Buches ordnen. Wie das in Wordpress mit benutzerdefinierten Feldern geht, erklärt dieser Artikel.

Warum die Standardabfrage nicht für Bibliografien gemacht ist

Über die Verschlagwortung einzelner Artikel kann man eigentlich ganz einfach eine Bibliografie erstellen: So tauchen alle Bücher, die ich unter „Haruki Murakami“ verschlagwortet habe, auf einer Seite auf, die das URL-Schema „http://meinedomain.de/?tag=haruki-murakami“ hat. Die Bibliografie generiert sich also automatisch von selbst. Allerdings werden diese Einträge nach Erstellungsdatum geordnet ausgegeben. So kann eine Liste dann beispielsweise so aussehen:

Haruki Murakami
- After Dark
- Tanz mit dem Schafsmann
- Naokos Lächeln

Die Abfrage dazu in tag.php (liegt im Theme-Ordner) sieht so aus:

<h2><?php single_tag_title(); ?> </h2>
<?php /* The loop */ ?>
<?php while ( have_posts() ) : the_post(); ?>
<p><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></p>
<?php endwhile; ?>

Ich möchte nun aber noch ein Erscheinungsdatum hinzufügen – schließlich soll es ja eine richtige Bibliografie werden, die einen chronologischen Überblick über das Werk des Autors gibt. Dazu lege ich ein Custom Field „erscheungsjahr“ unter zu jedem Artikel an, den ich mit einem Autorennamen verschlagwortet habe (wie ihr dieses anlegt, hatte ich ebenfalls im letzten Artikel erklärt). Damit das Erscheinungsjahr nun auch angezeigt wird, füge ich innerhalb des Loops eine Zeile hinzu:

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

Nun gibt mir WordPress folgende Liste aus:

Haruki Murakami
- After Dark
- Tanz mit dem Schafsmann
- Naokos Lächeln

Die Liste ist nicht chronologisch geordnet, da WordPress die Artikel nach Erstellungsdatum ausgibt, das heißt After Dark ist der neueste Artikel. Für die Tags möchte ich aber eine chronologische, also hier numerische Ordnung nach dem Custom Field „erscheinungsjahr“. Deshalb muss die Abfrage etwas umgeschrieben werden.

Eine chronologische Bibliografie erstellen

Die Abfrage in tag.php muss also durch folgenden Code ersetzt werden:

<h2><?php single_tag_title(); ?></h2>

<?php if ( tag_description() ) : // Show an optional tag description ?>
<?php echo tag_description(); ?>

<?php endif; ?>

<?php
query_posts( $query_string . '&orderby=meta_value_num&meta_key=erscheinungsjahr_&order=ASC' );
while ( have_posts() ) : the_post(); ?>

<p><?php echo get_post_meta($post->ID, 'erscheinungsjahr_japan', true); ?>: <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></p>

<?php
endwhile;
wp_reset_query();
?> 

Die Anzeige ist nun chronologisch:

Haruki Murakami
- 1987: Naokos Lächeln
- 1988: Tanz mit dem Schafsmann
- 2004: After Dark

Erweiterte Optionen

Wollt ihr noch eine Autorenbiografie hinzufügen, könnt ihr einfach zum Schlagwort eine Beschreibung hinzufügen. Außerdem ist es möglich, Seiten zu bestimmten Autoren beziehungsweise Tags individuell zu gestalten. Kopiert dazu einfach „tag.php“ und benennt sie um ind „tag-schlagwort.php“ beziehungsweise „tag-haruki-murakami.php“. Nun könnt ihr nur für dieses eine Schlagwort ein eigenes Template erstellen!

Dokumentationen:

Profilbild
Autorin: Friederike

Hallo, ich bin Friederike. Ich entwickle Websites und schreibe auf krempin.it darüber. Außerdem mag ich Japanische Literatur und Retro-Videospiele.