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

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Schreib den ersten Kommentar!

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

Bitte schalte deinen Adblocker für t3n.de aus!

Hey du! Schön, dass du hier bist. 😊

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team bestehend aus 65 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Danke für deine Unterstützung.

Digitales High Five,
Stephan Dörner (Chefredakteur t3n.de) & das gesamte t3n-Team

Anleitung zur Deaktivierung