Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

Entwicklung & Design

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();

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();

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();

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 unserer WordPress-Reihe:

Bitte beachte unsere Community-Richtlinien

Schreib den ersten Kommentar!

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.