Wordpress Plugin: Yearly Month Archive

Wordpress Plugin: Yearly Month Archive

Das Plugin Yearly Month Archive für Wordpress erzeugt, ähnlich der hauseigenen Wordpress Funktion wp_get_archives(), ein nach Jahren unterteiltes Monatsarchiv. Die Ausgabe kann alternativ in Spalten, mit oder ohne kleiner Statistik, ausgegeben werden.

Hinweis: Ich übernehme kein Risiko für durch das Plugin entstandene Schäden. Bisherige Tests bei mir liefen fehlerfrei und ich bin über jeden Hinweis zur Fehlerbeseitigung oder Kritik dankbar. :)

Der Grund für das Plugin war zum Einen, dass bei der hauseigenen Funktion wp_get_archives() von Wordpress, mir die Flexibilität einer jährlichen Unterteilung des Monatsarchivs fehlte. Gleichzeitig war es ein guter Gelegenheit mich endlich mal mit der Pluginerstellung zu beschäftigen.

Voraussetzung

Es wird von Wordpress bzw. Wordpress DE-Edition mindestens die Version 2.3 benötigt. ältere Versionen dürften auf Grund geänderter Datenbankstrukturen ohne Anpassung der entsprechenden Abfragen nicht funktionieren.

Download

Installation

  1. Entpacke das heruntergeladene Archiv und kopiere den darin enthaltenen Ordner yearly-month-archive in dein Wordpress Installationsverzeichnis unter /wp-content/plugins/.
  2. Aktiviere das Plugin Yearly Month Archive in der Pluginverwaltung.

Update

  1. Deaktiviere das Plugin Yearly Month Archive in der Pluginverwaltung.
  2. Entferne die alte Version, also das Verzeichnis yearly-month-archive im Wordpress Installationsverzeichnis unter /wp-content/plugins/.
  3. Entpacke das heruntergeladene Archiv und kopiere den darin enthaltenen Ordner yearly-month-archive in dein Wordpress Installationsverzeichnis unter /wp-content/plugins/.
  4. Aktiviere das Plugin Yearly Month Archive in der Pluginverwaltung.

Verwendung

Ab Version 0.5 kann das Plugin auf einfache Weise in eine beliebige (statische) Seiten von Wordpress eingebunden werden. Beispielsweise in eine Archivseite. Seiten kann man im Admininterface über Seiten -> Bearbeiten oder Erstellen verwalten.

Dazu wird ein Platzhalter [yearly-month-archive parameter,...] im Seitentext an die gewünschte Stelle eingetragen, welcher beim Aufruf der Seite dann mit der Archivausgabe ersetzt wird. Beispielsweise im Admininterface über Seiten -> Bearbeiten oder Erstellen.

Ein Beispiel für die Standardausgabe:

[yearly-month-archive]

Ein Beispiel mit Parametern, wie es hier im Blogarchiv verwendet wird:

[yearly-month-archive columns=3,show_stats=1,show_empty_months=1,show_post_count=1,use_container=div,show_graphic_stats=1,sort_order=1]

Will man das Archiv direkt über die Themedateien (php-Resourcen) einbinden so muss dies mit folgendem Aufruf erfolgen:

<?php if (function_exists('twp_yearly_month_archive')) : ?>
<?php twp_yearly_month_archive(); ?>
<?php endif; ?>

oder:

<?php if (function_exists('twp_yearly_month_archive')) {
twp_yearly_month_archive();
} ?>

Die Angabe der Funktion function_exists() ist notwendig, um Fehlern bei nicht aktivierter oder nicht vorhandener Funktion twp_yearly_month_archive() vorzubeugen.

Will man mehr als einen Parameter angeben, verknüpft man diese einfach mit einen ‘&’ oder konformer ‘& amp;’ (ohne Leerzeichen). Folgend ein Beispiel mit zusätzlichen Parametern:

<?php if (function_exists('twp_yearly_month_archive')) : ?>
<?php twp_yearly_month_archive('columns=3&show_stats=1&show_empty_months=1&show_post_count=1&use_container=div&show_graphic_stats=1&sort_order=1'); ?>
<?php endif; ?>

Eine Möglichkeit für eine Einbindung in eine extra Seite hab ich unter Eigene Archivseite für Wordpress beschrieben, wobei es ab Version 0.5 dank eines Platzhalters nicht mehr benötigt wird.

Parameter

Es können folgende Parameter, welche das Aussehen und den Inhalt der Pluginausgabe beeinflussen, angegeben werden:

limit_years

  • Anzahl der zu betrachtenden Jahre, ausgehend vom jüngsten. Wird nichts angegeben werden alle verfügbaren Jahre genommen.
  • Defaultwert (keine Angabe): alle verfügbaren Jahre anzeigen
  • Bsp.: limit_years=2 … für Anzeige der letzten beiden Jahre mit Blogeinträgen

hide_current_year

  • Legt fest, ob das aktuelle Jahr in der Archivausgabe berücksichtigt wird oder nicht.
  • ‘0′ … aktuelles Jahr wird angezeigt
  • ‘1′ … aktuelles Jahr wird nicht angezeigt
  • Defaultwert (keine Angabe): aktuelles Jahr wird angezeigt
  • Bsp.: hide_current_year=1

columns

  • Anzahl der für die Anzeige zu verwendenden Spalten. Die angegebene Zahl muss sich zwischen 0 und 10 befinden. Ein Angabe von 0 führt zu einer einfachen Ausgabe untereinander ohne der Verwendung eines Layoutes mit Spalten.
  • Defaultwert (keine Angabe): ‘0′ für einfache Ausgabe untereinander, ohne div und table
  • Bsp.: columns=3 … für Anzeige in 3 Spalten als Tabelle

show_empty_months

  • Zeigt immer vollständige 12 Monate eines Jahres an, auch wenn Monate keine Blogeinträge enthalten. Angabe ‘1′ steht für anzeigen und ‘0′ für nicht anzeigen.
  • Defaultwert (keine Angabe): keine Anzeige von leeren Monaten
  • Bsp.: show_empty_months=1 … für Anzeige von leeren Monaten

show_stats

  • Zeigt eine kleine Statistik über Blogeinträge pro Jahr, pro Monat und pro Tag an. Angabe ‘1′ steht für anzeigen und ‘0′ für nicht anzeigen.
  • Defaultwert (keine Angabe): keine Anzeige einer Statistik
  • Bsp.: show_stats=1 … für Anzeige der Statistik

show_post_count

  • Zeigt die Anzahl der Blogeintrag bei jedem Monat an. Angabe ‘1′ steht für anzeigen und ‘0′ für nicht anzeigen.
  • Defaultwert (keine Angabe): keine Anzeige der Blogbeitragsanzahl
  • Bsp.: show_post_count=1 … für Anzeige der Blogbeitragsanzahl

use_container

  • Dieser Parameter findet nur Verwendung, wenn der Parameter columns größer ‘0′ ist.
  • Legt die spaltenweise Ausgabe mit div oder table fest. Angabe ‘div’ steht für die Verwendung von div-Containern und ‘table’ für die Verwendung von einer Tabelle.
  • Defaultwert (keine Angabe): Verwendung von div-Containern
  • Bsp.: use_container=div … spaltenweise Ausgabe mit div-Containern

show_graphic_stats

Wordpress Plugin: Yearly Month Archive - Balkendiagramm

  • Das Feature ist noch nicht perfekt und die Balkendarstellung Browserabhängig, aber es ist ein Anfang.
  • Zeigt ein Balkendiagramm für alle Blogeintrag enthaltende Jahre an. Angabe ‘1′ steht für anzeigen und ‘0′ für nicht anzeigen.
  • Defaultwert (keine Angabe): Keine Ausgabe des Balkendiagrammes
  • Bsp.: show_graphic_statsr=div … Ausgabe des Balkendiagrammes

sort_order

  • Dieser Parameter beeinflusst die auf- bzw. absteigende Sortierreihenfolge der Monate und Jahre des Archivs. Gültige Werte sind 0, 1, 2 und 3.
  • ‘0′ … Jahre und Monate absteigend, neueste zu erst
  • ‘1′ … Jahre absteigend, Monate aufsteigend
  • ‘2′ … Jahre aufsteigend, Monate absteigend
  • ‘3′ … Jahre und Monate aufsteigend, älteste zu erst
  • Die Grafikausgabe über den Parameter show_graphic_stats bleibt davon unberührt, sie ist wie bisher absteigend.
  • Defaultwert (keine Angabe): Entspricht Wert ‘0′
  • Bsp.: sort_order=1 … Jahre absteigend, Monate aufsteigend

Changelog

  • 0.5 – grafische Statistik angepasst, Einbindung in Seiten vereinfacht, neuer Parameter ‘hide_current_year’ (20.02.2009)
  • 0.4 – Sortierreihenfolge ab- oder aufsteigend für Jahr und Monat hinzugefügt, Neue Option ’sort_order’, kleinere Anpassung des Stylesheets (22.02.2008)
  • 0.3.1 – Fehlerbehebung (css/html/php): Jahresbereiche als Div-Container wurden in Folgezeilen untereinander statt spaltenweise nebeneinander dargestellt (7.11.2007)
  • 0.3 – Logik fuer ‘columns’ und ‘use_container’ angepasst, Balkendiagramm ueber Archivverlauf samt Grafiken mit neuer Option ’show_graphic_stats’ (26.10.2007)
  • 0.2 – Lizenzangabe GPL, Spaltenausgabe als Div-Layout, Einbindung eines Stylesheets, Statistikausgabe Einzahl/Mehrzahl, Codeoptimierungen (23.10.2007)
  • 0.1.1 – Behebt einen Fehler bei der Anzeige von Monaten ohne Blogbeiträge, welche sich am Anfang des Jahres befinden (20.10.2007)
  • 0.1 – Initial Release, nicht perfekt aber geschlüpft (16.10.2007)

Todos / Feature Requests

  • Lokalisierung
  • Balkengrafik überdenken

Trackbacks und Pingbacks

17.10.2007 07:10 Eigene Archivseite für Wordpress « Tigions Blog
20.10.2007 04:10 Yearly Month Archive - Version 0.1.1 « Tigions Blog
22.10.2007 01:10 Lesetipp vom 2007-10-21 - Finger.Zeig.net
23.10.2007 01:10 Yearly Month Archive - Version 0.2 « Tigions Blog
26.10.2007 10:10 Yearly Month Archive - Version 0.3 « Tigions Blog
07.11.2007 01:11 Yearly Month Archive - Version 0.3.1 « Tigions Blog
06.12.2007 01:12 WordPress Plugins Database » Plugin Details » Yearly Month Archive
07.12.2007 07:12 Wordpress Update RSS » Blog Archive » Yearly Month Archive
14.01.2008 01:01 daemonized blog » » Neuer Look
22.02.2008 11:02 Yearly Month Archive - Version 0.4 « Tigions Blog
31.03.2008 05:03 Wordpress Upgrade 2.3.3 auf 2.5 « Tigions Blog
02.04.2008 12:04 del.icio.us-Links (29. März bis 2. April) « Gefunden « der tag und ich
12.04.2008 03:04 Yearly Month Archive-Plugin « Alltäglich belangloses « der tag und ich
11.10.2008 11:10 Archivfunktion | Panoramen-360.de
20.02.2009 04:02 Yearly Month Archive - Version 0.5 « Tigions Blog
27.04.2009 11:04 Yearly Month Archive – WP Plugin Archive
15.05.2009 11:05 Das Archiv | Panoramen-360.de
15.12.2009 04:12 Altgruftipunk » Blog Archiv » Telegramm: Archivbasteleien
18.01.2010 06:01 Monatsarchiv für Wordpress - Nicht spurlos

Kommentare

  • Oliver sagt:

    Verdammt, jetzt muss ich doch auf 2.3 updaten. Danke für den Tipp. Finde ich gut die Archivansicht.

  • Martin sagt:

    Das Plugin ist echt genial … allerdings wird bei mir, wenn ich eine dreispaltige Ansicht wähle, die zweite Zeile nicht mehr in Spalten angezeigt. Die Jahre 2004 und 2003 stehen einsam und alleine in jeweils einer Zeile und nicht wie gewünscht nebeneinander.

  • tigion sagt:

    Oh, na dies soll so nicht sein. Ich schaue es mir mal an. Danke fürs Feedback.

    Edit: Der Fehler scheint nur die DIV-Variante zu betreffen, mit der Table-Variante müsste es funktionieren.

  • tigion sagt:

    Fehler ist behoben. Hatte es mir mit einem einfach clear:left zu einfach gemacht, nun sind statt dessen zeilenweise Divs hinzugekommen.

  • Martin sagt:

    Jaaa, jetzt funktioniert es … super!

    Vielen Dank für die schnelle Reaktion. Davon kann man bei anderen Programmierern ja nur träumen :-)

  • Andreas sagt:

    Ist es auch möglich bestimmte Kategorien auszuschließen?

  • tigion sagt:

    Bisher nicht, ich notiere es aber mal auf der Ideenliste.

  • Marco sagt:

    Hey,
    find dein Plugin genial. Könntest du mir erklären wie ich die Monate chronologisch anordne?
    Gruß
    Marco

  • tigion sagt:

    Mit chronologisch meinst du, dass die Liste mit dem ältesten Jahr und mit dem Januar oben beginnt?

    Dies geht leider momentan nicht, da ich der Einfachheitshalber Parts der Wordpress Funktion wp_get_archives im Plugin verwende und diese gibt immer das neueste zu erst aus bzw. enthält sie keine Option die Ausgabe mit dem ältesten Datum zu beginnen.

    Edit: Ich nehme es mal mit auf die Liste für die nächste Version, so dass man per Option die Reihenfolge beeinflußen kann. :)

  • Marco sagt:

    Hey,
    ja das hört sich gut an.
    Die Jahre sollten schon mit dem aktuellen beginnen. Nur die Monate fände ich chronologisch, also mit Januar beginnen einfach Sinniger.
    Danke

  • Sanny sagt:

    hallo,

    also erstmal muss ich sagen, dass ich dein plugin sehr gelungen finde. allerdings habe ich ein problem. bei mir wird zwar das archiv angezeigt, allerdings werden meine posts nicht gefunden. sprich: wenn ich alle monate anzeigen lasse, so habe ich keine links auf den entsprechenden monaten. und sobald ich angebe, dass nur die monate mit postinhalt angezeigt werden sollen, so bekomme ich eine leere seite. :(
    irgendeine idee woran es liegen kann?
    ich verwende wordpress v. 2.3.2

    danke vorab!
    lg
    sanny :girl:

  • tigion sagt:

    Hallo sanny,

    wie sieht denn dein Aufruf von twp_yearly_month_archive aus bzw. wo in deinem Wordpress Template hast du diese Funktion eingebaut?

    Mit leerer Seite, meinst du da eine leere Seite in deinem Wordpress Thema oder das komplette Browserfenster?

    An deiner Wordpress Version 2.3.2 liegt es nicht, obwohl mittlerweile 2.3.3 aktuell ist.

  • Marten sagt:

    Es liegt ein Fehler vor in Version: 0.4 in Zusammenhang nit Wordpress 2.6.1 werden die Links zu den Monaten nicht gebildet und die Anzahl der Posts im Monat nicht angezeigt. Vielmehr denkt das Plugin das alle Monate leere Monate sind. Der Fehler liegt in Zeilen 330: foreach ($result_months_fill as $result_month) { diese Zeile in foreach ($result_months as $result_month) { abändern und alles sollte wie gewünscht funktionieren.
    Danke für Plugin und bitte in neuen Version fixen.

    Thx, Marten

  • tigion sagt:

    Hm ich hab es hier ja ebenfalls in Version 0.4 für Wordpress 2.6.2 laufen und da funktioniert es. Scheint also kein generelles Problem zu sein.

    Die Variable $result_months_fill hat seinen Grund, diese einfach zu ersetzen würde ein paar Optionen des Plugins beschneiden.

    Mit welchen Einstellungen hast du denn das Plugin eingebunden, eventuell gibt es in dem Zusammenhang eine Möglichkeit den Fehler einzugrenzen.

  • Marten sagt:

    Das Plugin ist mit folgenden Code in der footer.php eingebunden in einem schon älteren The Masterplan Template was modifiziert wurde:

    Welche Optionen würden beschnitten werden?

  • tigion sagt:

    Ersetze mal bitte hier in den Kommentaren < und > mit & gt; und & lt; (ohne Leerzeichen zwischen & und lt;/gt;) oder lasse sie einfach weg. Deswegen hat es deinen Code hier entfernt.

    Beschnitten würden die Optionen der Sortierung und die Anzeige leerer Monate ohne Beiträge. Wird beides nicht benötigt, kann man natürlich direkt die $result_months nehmen, wobei mich jetzt schon interessieren würde wo der Fehler steckt.

  • SMiGr sagt:

    Hallo,
    ich welche Datei wir der Code eingebaut? Mein Theme hat keine archive(s).php, aber ich habe mir eine aus der index.php gebastelt. Wird der Code dort eingebaut?

  • SMiGr sagt:

    Ich habe das Script in eine neu angelegte archive.php eingebaut und es funktioniert einwandfrei. Nur eines bekomme ich nicht hin und stört mich. Wenn ich ein Monatsarchiv anklicke, dann ändert sich nur der Kalender in der Sidebar, ich hätte aber gerne auf eine Übersichtsseite (z.B. eine archiv2.php) verlinkt. Bei Dir sieht es besser aus und scheint so zu sein, wie ich es mir vorstelle. Won ändere ich das?

  • tigion sagt:

    Hallo SMiGr, mir ist nicht ganz klar was du genau meinst bzw. wo das Problem liegt. Wird gar keine jährliche Archivübersicht angezeigt oder kann dann nciht auf die monatlichen Beiträge zugegriffen werden?

    Das Plugin bzw. Script listet ja eigentlich nur nach Jahren getrennt die Links zu den monatlichen Beiträgen, wie es die Standardfunktion von Wordpress tut. Eine Möglichkeit dies in einer extra Seite unterzubringen, hab ich unter Eigene Archivseite für Wordpress beschrieben.

  • Charlotte sagt:

    Hallo,
    sehr gutes Plugin! Eine Frage:
    Kann man (frau;-)das aktuelle Jahr ausschließen?
    Ich möchte gern im Archiv nur die alten Beitäge angezeigen und die vom laufenden Jahr an anderer Stelle plazieren….
    Lieben Gruß
    Lotte

  • tigion sagt:

    In der aktuellen Version geht es nicht, aber ich nehme es mal für die nächste Version auf.

  • tigion sagt:

    @Charlotte: In der meuen Version 0.5 kann man jetzt das aktuelle Jahr ausschliessen. :)

  • bertl sagt:

    hi tigion,
    cooles plugin, aber ich hab das gleiche problem, wie es hier schon ab und an aufgetreten ist. ich bau den codeschnipsel wie von dir empfohlen mit eckigen klammern in eine regulaere seite in meinem wp (2.7) aber die monate erscheinen alle nur als leer und unverlinkt. die statistik hingegen erkennt die eintraege – wobei die balken auch wieder nicht sichtbar sind… wo ist das problem? kann ich da was machen?

  • tigion sagt:

    Hm, was für ein Zeitzone, Datumsformat, Zeitformat und Wochenbeginist denn bei dir für Wordpress eingestellt?

    Welche Sprach-/Wordpressversion verwendest du bzw. welche Sprache ist in der config.php angegeben?

    Ach ja poste mal den Eintrag [...], wie du ihn in die Seite eingebunden hast.

  • bertl sagt:

    juti, also mein eintrag auf der seite sieht so aus:
    [yearly-month-archive columns=3,show_empty_months=1,show_post_count=1,use_container=div,sort_order=1]

    und ich nutze die deutsche version 2.7.1 und in der config wird auch aufs deutsche verwiesen: define (‘WPLANG’, ‘de_DE’);

    die zeitzone im wp ist utc + 1, die standardeinstellung.

    hast du ne idee?

  • bertl sagt:

    ach ja, und wenn ich den schnipsel einbaue, wie du ihn nutzt (also mit dem balkendiagramm und den jahreszahlen von – bis) dann steht anstelle der jahreszahlen jeweils nur eine 0.
    vielleicht hilft dir das noch bei der fehlersuche?

  • tigion sagt:

    Ja, danke erstmal.

  • bertl sagt:

    kannst du den fehler nachstellen um zu erkennen woran es liegen könnte?
    ich würde sehr gern dein archiv-plugin nutzen, da ich keine anständige alternative finden konnte, was übersichtlichkeit für große mengen von posts bietet.

  • tigion sagt:

    Bertl, dass du an dem Plugin Interesse zeigst freut mich. Ich bin an dem Fehler noch dran, bin nur momentan etwas beschäftigt.

  • bertl sagt:

    hi tigion, ich bin’s mal wieder. hast du schon den fehler gefunden? mach dir aber keinen zu grossen stress deswegen, wenn’s nicht#s wird, wird’s eben nichts. danke trotzdem fuer die muehe!

  • Philip sagt:

    Falls Interesse besteht, ich habe gerade bei mir im Plugin die SQL Abfrage dementsprechend geändert, dass das Archiv nur für eine bestimmte Kategorie greift.

  • Mona sagt:

    Wollte total gerne dieses Plugin benutzen, leider habe ich die gleichen Probleme wie bertl. :-|

  • Mona sagt:

    So, ich habe jetzt mal den Tipp von Marten ausprobiert, dadurch funktioniert das Plugin. Leider halt mit den genannten Einschränkungen, die Monate ohne Beiträge hätte ich ja schon gerne angezeigt.

    Aber Daumen hoch für dieses tolle Plugin!

  • zauberer sagt:

    also vielen Dank für dies kleine aber sehr nützliche Plugin, die Statistikfunktion finde ich auch hervorragend, denn so sieht man mal was man schreibt … :)

    ist eingerichtet, hat sofort funktioniert, mit WP 2.9 ich liebe es :)

    Grüße V.

  • tigion sagt:

    Danke für das Feedback. Bin selber noch zu keinem Test unter 2.9 gekommen, aber schön zu hören das es funktioniert.

  • juliaL49 sagt:

    Hallo! Bin begeistert von der klaren und kompakten Struktur und habe das Plugin sofort eingebaut.

    Allerdings ist mir aufgefallen, dass durch die Prozent-Angaben der Balkenbreite meine Seite nicht mehr xhtml-valide ist. Deswegen habe ich ein floor() um die Angabe gemacht (Zeile 178) und da dies die Breite nicht wesentlich ändert, wenn es viele Monate sind, habe ich es bei mir so gelassen. Bei Blogs mit weniger Monaten wird evtl. schwieriger.
    Das nur als Anstoß zur Neuumdenkung :)

    PS: ich nutze WP 2.9.1 und das Plugin fkt wunderbar

  • tigion sagt:

    Danke. Die Balkengrafik war nur eine kleine Spielerei. Ich glaube ich muss mich ihr noch einmal ernsthafter widmen.

  • Mona sagt:

    Das Plugin funktioniert bei mir jetzt auch einwandfrei. Nochmal vielen Dank, so lsst sich das Archiv super einbauen.

Einen Kommentar schreiben: