WordPress – eigene Sitemap

Eine Sitemap hilft dem User schnell an bestimmte Inhalte zu kommen. Standard-Kategorieseiten sind meist recht unübersichtlich. Da macht es Sinn sich mit wenig Aufwand selbst eine eigene WordPress Sitemap zu bauen.In WordPress ist das auch relativ einfach möglich. Zu diesem Zweck müssen Sie lediglich die Datei index.php aus Ihrem Templatesverzeichnis öffnen und unter dem Namen artikelliste.php speichern. (Siehe Tipp individuelles Seitenlayout). In die erste Zeile der Datei fügen Sie folgenden Code ein:

<?php
/* Template Name: Listendarstellung
*/
?>

Dann müssen Sie den Loop etwas umprogrammieren, dass er beispielsweise alle Artikel zeigt, und Ihre WordPress Sitemap alphabetisch nach Titel sortiert. Hierzu fügen Sie vor dem Loop folgenden Quellcode ein

<?php query_posts(array(‚order’=>’ASC‘,’orderby’=>’title‘,’posts_per_page’=>‘-1′,)); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> (Das ist der Loop)

Als Nächstes entfernen Sie alle überflüssigen Tags – Es soll nur der Titel stehen bleiben; verlinkt mit dem Permalink. Der komplette Loop könnte also folgendermaßen aussehen:

<ul class="artikelliste">
<?php query_posts(array('order'=>'ASC','orderby'=>'title','posts_per_page'=>'-1',));
if (have_posts()) :  while (have_posts()) : the_post(); ?>
<li class="artikelliste">
<a href="<?php the_permalink() ?>"
title="<?php the_title(); ?>">
<?php the_title(); ?></a>
</li>
<?php endwhile; ?>
<?php endif; ?>
</ul>

Diese Datei speichern Sie in Ihrem Template-Verzeichnis. Nun schreiben Sie eine Seite unter WordPress mit beliebigem Namen, beispielsweise Artikelliste, und weisen dieser Seite das Template Listendarstellung zu. Das ist der Name den Sie im Template oben eingefügt haben. Die Seite kann vollkommen leer bleiben, da Sie die Inhalte dieser WordPress Sitemap ja über die Programmierung anzeigen.

Das Ganze ergibt dann eine Liste mit allen Artikeln Ihres Blogs. Die Liste können sie über CSS dann nach Belieben formatieren. Nach diesem Beispiel ist auch die WordPress Sitemap im Tipps-Archiv erstellt.

Achtung: Bei Blogs mit vielen Artikeln kann die Liste ziemlich lange werden. Dementsprechend lange dauert das Laden der Seite. Sie können Speicherplatz sparen wenn Sie auf den Titel beim Link verzichten also title=“<?php the_title(); ?>“ weglassen.

WordPress Sitemap teilen
Bei größeren Blogs mit vielen Artikeln, wird Ihre WordPress Sitemap trotzdem sehr groß. Bei 1000 und mehr Artikeln erhöht sich dadurch die Ladezeit und die Serverlast ist auch nicht zu vernachlässigen. Das einzige Problem besteht darin die Seitenzahlen richtig zu übernehmen. Hierfür ändern Sie die Abfrage etwas ab.

query_posts(array(‚paged’=> $paged, ‚order’=>’ASC‘,’orderby’=>’title‘,’posts_per_page’=>’500′,));

Die Variable $paged übergibt die Seitenzahl wieder an die Abfrage. Somit weiß beispielsweise die SEO-Navigation wp_pagenavi auf welcher Seite Sie sich befinden – andernfalls gibt es Probleme und es wird immer die erste Seite dargestellt. Über posts_per_page stellen Sie ein wie viele Artikel Sie pro Seite anzeigen möchten. (-1 = alle) 500 oder 1000 Artikel sind nicht zu viel, da der User bei einer Sitemap ja auch mit vielen einträgen rechnet und nicht so viel blättern möchte.

Share this post:

133927

3 Kommentare

  1. Hallo und besten Dank. Anhand deiner Beschreibung war die Erstellung einer Beitragsübersicht in kürzester Zeit erledigt und ist nun online.

  2. Horst says:

    Ist das nicht nur was für Seiten mit nicht so vielen Beiträgen?

    • Susann says:

      Hallo Horst,
      das ist natürlich richtig. So eine Abfrage belastet a, den Server und b, die Internetverbindung. Bei 1.000 Artikeln können das schon 250 KByte werden. Wenn man den Title weg lässt spart man die Hälfte. Man kann die Anzahl der Artikel pro Seite – das hab ich im Artikel ergänzt. danke für den Hinweis

Hinterlassen Sie Ihren Kommentar