Post navigation

Wie Du eine WordPress Sitemap für deine Besucher erstellen kannst

Tutorials, WordPress · · Keine Kommentare

Sitemaps sind nicht nur für Google eine tolle Sache, sondern auch für deine Besucher. Eine WordPress Sitemap lässt deine Besucher auf einen Blick die neuesten Beiträge, die Seiten, die Kategorien mit dem jeweiligen Feed und die monatlichen Archive mit der Anzahl der Artikel erfassen. So finden deine Besucher schneller das, wonach sie suchen.

Für unsere WordPress Sitemap brauchen wir zuallererst ein neues Template, das die Informationen darstellen wird. Dazu erstellen wir eine leere PHP-Datei und nennen sie template-sitemap.php. In diese Datei fügen wir zuerst den wichtigen Header ein, mit dessen Hilfe wir das Template in der Box »Seiten-Attribute« auswählen können.

<?php /* Template Name: Sitemap */

get_header(); ?>

Die Struktur des WordPress Sitemap Templates

Nachdem dies geschehen ist, fehlen noch ein wenig HTML Markup für die Struktur und einige kleine WordPress-Funktionen.

Die neuesten 20 Beiträge anzeigen

Eine kleine wp_query() Loop zeigt die letzten 20 Beiträge an. Du kannst natürlich auch mehr oder weniger Artikel anzeigen lassen.

<ul class="mh-sitemap-list">
    <?php $recent = new WP_query(array('posts_per_page' => 20))// Die Anzahl der Posts ;
     while ($recent->have_posts()) : $recent->the_post(); ?>
    <li class="sitemap-list-item">
        <a href="<?php the_permalink(); ?>">
            <?php the_title(); ?>
        </a>
    </li>
    <?php endwhile; wp_reset_postdata(); ?>
</ul>

Alle Seiten anzeigen lassen

Das folgende Snippet zeigt alle Seiten deines WordPress an.

<ul class="mh-sitemap-list">
    <?php wp_list_pages(array( 'title_li' => '', 'post_status' => 'publish' ) ); ?>
</ul>

Manchmal kann es ganz sinnig sein, einige Seiten nicht in der Sitemap anzeigen zu lassen. Dazu muss der Code etwas erweitert werden. Wir schliessen hierbei die Seiten mit den IDs 10 und 12 aus.

<ul class="mh-sitemap-list">
    <?php wp_list_pages(array( 'title_li' => '', 'post_status' => 'publish', 'exclude' => 10,12 ) ); ?>
</ul>

Die monatlichen Archive

Der Template-Tag zeigt die monatlichen Archive mit der Anzahl der jeweiligen Beiträge pro Monat an

<ul class="mh-sitemap-list">
    <?php wp_get_archives( 'type=monthly&show_post_count=1' ); ?>
</ul>

Die Kategorien

Als letztes lassen wir die einzelnen Kategorien mit den jeweiligen RSS-Feeds anzeigen.

<ul class="mh-sitemap-list">
    <?php wp_list_categories(array( 'title_li' => '', 'feed' => 'RSS', 'show_option_none' => esc_html__( 'Keine Kategorien vergeben', 'evolution' ) ) ); ?>
</ul>

Das komplette Sitemap Template für dich

<?php /* Template Name: Sitemap */

get_header(); ?>

<div class="row">

<div class="row-content buffer-left buffer-right buffer-bottom">

<div class="column full">
<h1 class="entry-title sitemap"><?php the_title(); ?></h1>
<div class="mh-row sitemap">

<div class="mh-col-1-3 col-1">
    <h5 class="mh-widget-title">
        <span class="mh-widget-title-inner">
            <?php esc_html_e('Neueste Artikel', 'evolution'); ?>
        </span>
    </h5>
    <ul class="mh-sitemap-list">
        <?php $recent = new WP_query(array('posts_per_page' => 20));
            while ($recent->have_posts()) : $recent->the_post(); ?>
        <li class="sitemap-list-item">
            <a href="<?php the_permalink(); ?>">
                <?php the_title(); ?>
            </a>
        </li>
        <?php endwhile; wp_reset_postdata(); ?>
    </ul>
</div>
<div class="mh-col-1-3 col-2">
    <h5 class="mh-widget-title">
        <span class="mh-widget-title-inner">
            <?php esc_html_e('Seiten', 'evolution'); ?>
        </span>
    </h5>
    <ul class="mh-sitemap-list">
        <?php wp_list_pages(array('title_li' => '', 'post_status' => 'publish')); ?>
    </ul>
</div>
<div class="mh-col-1-3 col-3">
    <h5 class="mh-widget-title">
        <span class="mh-widget-title-inner">
            <?php esc_html_e('Die Archive', 'evolution'); ?>
        </span>
    </h5>
    <ul class="mh-sitemap-list">
        <?php wp_get_archives('type=monthly&show_post_count=1'); ?>
    </ul>
    <h5 class="mh-widget-title">
        <span class="mh-widget-title-inner">
            <?php esc_html_e('Kategorien', 'evolution'); ?>
        </span>
    </h5>
    <ul class="mh-sitemap-list">
        <?php wp_list_categories(array( 'title_li' => '', 'feed' => 'RSS', 'show_option_none' => esc_html__( 'Keine Kategorien vergeben', 'evolution' ) ) ); ?>
    </ul>
</div>
</div><!-- end .row -->

</div><!-- column -->

</div><!-- row-content -->

</div><!-- row -->
<div class="clear"></div>

<?php get_footer(); ?>

Kurz noch mit etwas CSS abschmecken

Damit die fertige Sitemap schick in drei einzelnen Spalten übersichtlich dargestellt werden kann, braucht es noch ein wenig CSS.

/* Drei Spalten für die Sitemap */
.mh-col-1-3 {
width: 30%;
float: left;
clear: none !important;
margin-left: 4.5%;
}

.mh-row [class*='mh-col-']:first-child {
margin: 0;
}

Das Template nutzen

Lade das Template nun per (S)FTP in deinen Theme-Ordner hoch und erstelle eine neue Seite. Wähle das neue Template aus und speichere die Seite ab.

WordPress Sitemap - Wähle das neue Template aus

Wähle das neue Template aus

Das Endergebnis sieht bei mir so aus:

Meine WordPress Sitemap

Das Ergebnis: Meine Sitemap

Dir gefällt die Code-Darstellung auf dieser Seite? Ich nutze dafür das AH Code Highlighter Plugin von WordPress.

Abonniere meinen Newsletter

Melde Dich für meinen Newsletter "WordPress & Bloggen" an und verpasse keinen Artikel. Als Dankeschön bekommst Du Gratis meine nützliche Checkliste:
»12 Dinge, die Du vor einem Theme-Wechsel beachten solltest«.

Andreas Hecht

ist WordPress-Entwickler und bietet dir WordPress-Sicherheit für deine Website. Zudem entwickelt er WooCommerce Shops mit Ladezeiten von unter einer Sekunde. Er ist ebenfalls Autor von drei richtig guten WordPress E-Books.

Schreibe einen Kommentar

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