Das eigene WordPress-Theme erstellen – #13: Die Archiv-Ansichten

In dieser Artikelreihe geht es darum, ein WordPress-Theme zu erstellen – von Grund auf. Teil 13 beschäftigt sich mit der Ansicht der Archive, wie etwa der Kategorie-Ansicht, sowie der Datei für die Ansicht aller Beiträge eines Autors.

Allgemeine Archiv-Ansicht des WordPress-Themes anpassen

Um alle Archiv-Ansichten im gleichen Maße anders darzustellen, als die index.php vermag, genügt eine archive.php. Der Unterschied zur index.php ist, dass der Titel des Archivs sowie die gegebenenfalls festgelegte Beschreibung angezeigt wird. Die Datei sieht folgendermaßen aus:

<?php get_header(); ?> <main role="main"> <?php if ( have_posts() ) { ?> <header class="archive-header"> <h1> <?php esc_html( the_archive_title() ); ?> </h1> <?php the_archive_description(); ?> </header> <?php while ( have_posts() ) { the_post(); get_template_part( 'content', get_post_format() ); } } the_posts_pagination( array( 'type' => 'list' ) ); ?> </main> <?php get_sidebar(); get_footer();
Code-Sprache: HTML, XML (xml)

Wenn mit have_posts() sichergestellt ist, dass Beiträge vorhanden sind, dann wird mit der the_archive_title()-Funktion der Titel des Archivs ausgegeben. Darunter folgt, ebenfalls noch in dem header-Element, die Ausgabe der Beschreibung mit the_archive_description(). Der Rest des Codes ist schon aus früheren Teilen bekannt.

Ansicht des Autoren-Archivs

Die Archiv-Ansicht der Autoren soll etwas anders sein. Statt der Beschriftung Autor: Florian Brinkmann soll Alle Beiträge von Florian Brinkmann als Überschrift angezeigt werden. Deshalb erstellen wir für diese Archiv-Art die author.php, die folgendermaßen aussieht:

<?php get_header(); ?> <main role="main"> <?php if ( have_posts() ) { ?> <header class="archive-header"> <h1> <?php printf( __( 'All posts by %s', 'bornholm' ), get_the_author() ); ?> </h1> <?php if ( get_the_author_meta( 'description' ) ) { the_author_meta( 'description' ); } ?> </header> <?php while ( have_posts() ) { the_post(); get_template_part( 'content', get_post_format() ); } } the_posts_pagination( array( 'type' => 'list' ) ); ?> </main> <?php get_sidebar(); get_footer();
Code-Sprache: HTML, XML (xml)

Der Anfang ist klar. Neu ist, dass wir als Titel nicht einfach the_archive_title() nutzen, sondern uns einen eigenen String zusammenbauen, in den der Name des Autors mit get_the_author() eingefügt wird. Anschließend prüfen wir, ob der Autor eine Beschreibung angelegt hat und geben sie im Fall der Fälle mit the_author_meta( 'description' ) aus.

Danach wird wie gewohnt die Loop gestartet und die Beiträge ausgegeben.

Ansicht der Suchergebnisse

Ein weiteres Archiv sind die Suchergebnisse. Auch hier möchten wir ein bisschen von dem Format der the_archive_title()-Funktion abweichen und als Titel so etwas ausgeben: Suchergebnisse für: Suchbegriff. Die entsprechende search.php sieht so aus:

<?php get_header(); ?> <main role="main"> <?php if ( have_posts() ) { ?> <header class="archive-header"> <h1> <?php printf( __( 'Search Results for: %s', 'bornholm' ), esc_html( get_search_query() ) ); ?> </h1> </header> <?php while ( have_posts() ) { the_post(); get_template_part( 'content', get_post_format() ); } } the_posts_pagination( array( 'type' => 'list' ) ); ?> </main> <?php get_sidebar(); get_footer();
Code-Sprache: HTML, XML (xml)

Den Suchterm holen wir uns über die get_search_query()-Funktion und den Rest des Codes kennen wir schon aus den anderen Archiv-Dateien.

Theme-Code

Den Theme-Code findet ihr im Repository auf GitHub. Den Stand nach dem 13. Teil unserer Reihe findet ihr in Tag „v0.11“.

Die weiteren Teile meiner WordPress-Reihe:

Dieser Beitrag ist eine Übernahme meines Beitrags für t3n.de.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert