Post navigation

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

Tutorials, WordPress · · 2 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.

➜ Meine Empfehlung für Dich:Raidboxes Managed WordPress Hosting

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.

2 thoughts on “Wie Du eine WordPress Sitemap für deine Besucher erstellen kannst

  • Ich versuche auf meinem Regionalmagazin auch, diese Sitemap einzubauen.
    Aber aus irgendeinem Grund funktioniert es hier nicht.

    Irgendeine Idee, woran das liegen könnte? Der Link ist salzsau-panorama.de/besucher-sitemap

    Auf meinem Allgemeinen Blog funktioniert es Tadellos

    • Hi Marcus!

      Die Elemente werden im Quellcode dargestellt und sind demzufolge vorhanden. Entweder ist die Ausgabe nicht valide – also nicht-geschlossene Elemente, oder ein Plugin verhindert die Anzeige. Ein Tipp von mir: Mach eine Kopie von der page.php, lösche die Loop heraus und füge den Code der Sitemap ohne wp_head() und wp_footer() ein. Danach den Template-Namen noch einfügen und das Template zuweisen. Das könnte eventuell Abhilfe verschaffen.

Schreibe einen Kommentar

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