WordPress Archiv Template erstellen
In der letzten Zeit gab es ja so einige Diskussionen (hier und hier zum Thema Doppelter Content in WordPress.
Ein großer Teil doppelter Content wird durch das Archiv und die Kategorien erzeugt. Ich habe mal nach meinem Tutorial Ein XML Grid mit der Ext Library gegoogelt. Es ist insgesamt 11x im Google Index enthalten.
Hinzu kommt, das es mir persönlich nicht gefällt, in Blogs mit großen Archiven immer 10 komplette Artikel anzeigt zu bekommen, um dann zu den nächsten 10 weiterzublättern. Das ist unübersichtlich und es gehen dem Leser mit Sicherheit interessante Beiträge verloren, weil er entnervt aufgibt.
Also hab ich mich mal aufgemacht und habe mir ein Template für die Kategorien und das Monatsarchiv gebaut. Inspiriert wurde ich durch Robert Hartl’s Jahresarchiv.
Vorüberlegungen
Das Template soll für die Kategorien und für das Archiv (Monats- oder Jahresarchiv) zugleich sein und soll nur eine Liste der jeweils vorhandenen Artikel mit Datum und Permalink darstellen. Es soll in der Überschrift zu sehen sein, was der Leser gerade für ein Archiv/Kategorie anschaut. Ausserdem müssen wir den Loop überlisten, da er nur soviel Beiträge darstellt, wie im Admin Modul unter Lesen eingestellt ist.
Das Template
WordPress schaut bei Kategorien immer zuerst, ob eine category.php da ist, wenn nicht, nach archive.php und wenn die nicht da ist, nach index.php. Beim Archiv genauso, zuerst nach archive.php, dann nach index.php. Also legen wir eine archive.php in unserem Template Verzeichnis an.
Wir fügen den Header, den Loop sowie Sidebar und Footer ein:
<?php get_header(); ?>
//the Loop
<?php if (have_posts())
>
<div class="beitrag">
<ul class="archivelist">
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanenter Link zu diesem Artikel"><?php the_time('d.m.Y'); ?> - <?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>
</div>
<?php endwhile; ?>
<?php else : ?>
// Tu hier was du willst, zB. Fehlermeldung, wenn nichts da ist.
<?php endif; ?>
//End the Loop
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Nun haben wir unser Grundgerüst. Ihr müßt natürlich eure HTML Elemente anpassen. Jetzt müssen wir unterscheiden, ob wir von einer Kategorie- oder Archiveseite kommen und ob das Archiv monatlich oder jährlich dargestellt ist. Weiterhin wollen wir alle Posts anzeigen lassen und wir brauchen unsere Überschriften.
Wir fügen über dem Loop folgenden Code ein:
if (is_category()){
$category = get_query_var('cat');
query_posts('cat='.$category.'&showposts=-1');
$catergorytitle = get_catname($category);
$headline="<h2>Alle Beiträge der Kategorie ".$catergorytitle."</h2>n";
}
if (is_month()){
$month = get_query_var('monthnum');
$year = get_query_var('year');
query_posts('year='.$year.'&monthnum='.$month.'&showposts=-1');
$localmonth = $wp_locale->get_month($month);
$headline="<h2>Archiv ".$localmonth." ".$year."</h2>n";
}
if (is_year()){
$year = get_query_var('year');
query_posts('year='.$year.'&showposts=-1');
$headline="<h2>Archiv ".$year."</h2>n";
}
Die Überschrift fügen wir unterhalb von if (have_posts()) : ein.
if (have_posts()) :
echo $headline; ?>
Jetzt sollte eurer Archiv genauso aussehen wie meins
. Die Liste könnt ihr mit CSS euren Bedürfnissen anpassen.
Ich hatte gedacht, das ich das Template ebenfalls für die Tags benutzen kann, leider bekomme ich eine Fehlermeldung von der Datenbank. Mal sehen, ob ich das hinbekomme.
- Kategorie: Tutorials, WordPress
- Tags: blog, code, html, php, tutorial, Webdesign, WordPress
- Kommentar-Feed | Trackback URL
- Gelesen: 10725 | Heute: 6
- einen Kommentar schreiben


Hey vielen lieben Dank für die Tipps. Werde es mal an meinem Theme ausprobieren.
grüße
Duergy
Hi,
hast du ne Lösung parat wie ich mein TAG Archive extra z.B. über eine archive_tag.php steuern könnte?
Damit könnte man das alles viel flexibler verwalten.
Gruß,
Stanley
@Stanley: Du brauchst nur eine tag.php anlegen. die wird immer dann geladen, wenn einer auf ein Tag klickt.