In english -- or something similar(Dieser Beitrag stammt ursprünglich aus dem Würzblog. Ich habe ihn aber in dieses Blog verlegt, da er hier thematisch besser passt)Wenn ein Blog länger besteht, dann ist es ja fast schon ein historisches Dokument. Und so kann es interessant sein, was so vor einem Jahr im Blog passiert ist. Zumindest stellte sich dieses Problem dem Würzblog. Eine grobe Recherche brachte mir kein Plugin für Wordpress, dass mir diese Funktionalität bot. (Falls ich es einfach nur übersehen habe, dann gibt es jetzt ein Zweites. ;-)) Also habe ich mal schnell eines selbst geschrieben. :-)#### Übersicht

Mit "A Year Before" kann man Blogbeträge anzeigen lassen, die vor einer bestimmten Zeitspanne im Blog veröffentlich wurden. So kann man in einer "historischen Ecke" zeigen lassen, was vor z. B. 30 Tagen, 6 Monaten oder einem Jahr im Blog passierte. Das Plugin ist nach wie vor im Beta-Stadium, ich garantiere also noch nicht, dass auch alles funktioniert. Aber beim Testen ist noch nichts Schlimmes passiert ... ;-) #### Installation

Das Plugin aus dem Wordpress-Repository herunterladen und das Verzeichnis a-year-before mit den darinliegenden Dateien in den Plugin-Ordner von Wordpress schieben. Dann A Year Before bei den Plugins in der Wordpress-Administration aktivieren. ##### Als Widget

Wenn man die Widget-Funktion von Wordpress nutzt, dann ist der Rest sehr simpel. Einfach in der Widget-Verwaltung A Year Before auf die Sidebar ziehen. Bei Bedarf kann man im Popup-Dialog alles Mögliche einstellen. Man kann die Plugin-Ausgabe über ein Muster steuern. Mögliche Platzhalter sind: * %title% Der Titel des Artikels * %link% Der Link zum Artikel * %date% Das Datum des Artikels * %excerpt% Der Auszugs des Artikels. Man kann die Länge des Auszugs mitangeben, so zeigt %excerpt80% die ersten 80 Zeichen an. Beispiel eines Musters: %date%: <a href="%link%">%title%<br/>%excerpt40%</a>##### Als PHP-Code

Im Template -- die Sidebar bietet sich dafür an -- an die Stelle, an der die Beitragsliste erscheinen soll, folgenden PHP-Code einfügen: <?php if (function_exists("ayb_posts")) { ?><div class="box"><h2>Vor einem Jahr</h2><ul><?php ayb_posts(); ?></ul></div><?php } ?>Entscheidend ist die Zeile <?php ayb_posts(); ?>, hier werden die zurückliegenden Beiträge ausgegeben. Alles andere ist nur Beiwerk, das auch kurz erwähnt werden soll. Die erste und letzte PHP-Zeile sorgen nur dafür, dass keine Fehler auftritt, wenn das Plugin nicht installiert oder aktiviert ist. Das DIV ist ein Containerelement, mit dem man den ganzen Block mittels CSS gestalten könnte. Das H2 ist die Überschrift über der Liste, das UL erzeugt eine Liste -- dazu später mehr. Werden beim Aufruf von ayb_posts keine Parameter in den Klammern angegeben, dann gibt das Plugin die Beiträge inklusive Datum als Listenelemente aus, die vor einem Jahr gebloggt wurden. #### Konfiguration

Die Optionen für das Plugin wird in folgender Form übergeben: parameter1=wert1&parameter2=wert2&parameter3=wert3 ...Folgende Parameter stehen zur Verfügung: - day gibt die Anzahl der Tage an, vor denen die Beiträge angezeigt werden sollen.

  • month gibt die Anzahl der Monate an, vor denen die Beiträge angezeigt werden sollen.
  • year gibt die Anzahl der Jahre an, vor denen die Beiträge angezeigt werden sollen.
  • before gibt HTML-Code an, der vor jedem alten Beitrag steht. Standardmäßig das Listenelement <li>
  • after gibt HTML-Code an, der nach jedem alten Beitrag steht. Standardmäßig das Listenelementende </li>
  • showdate schaltet die Anzeige des Datums vor jedem Beitrag ein (Wert=1, Standardwert) oder aus (Wert=0)
  • dateformat ist für die Formatierung des angezeigten Datums vor den Beiträgen. Die Formatangaben sind analog zum PHP-Befehl date. Als Standard dient die deutsche Datumskurzform "d.m.y", was z. B. zur Ausgabe 27.12.06 führt.
  • notfound ist der Text der ausgegeben wird, wenn keine Beträge an dem Tag gefunden wurden.
  • range gibt eine Anzahl von Tagen an, die in Richtung Zukunft nach Artikeln gesucht wird, wenn am gwünschten Tag kein Beitrag geschrieben wurde.
  • anniversary steuert den "Jahrestag-Modus". Wenn auf 1 gesetzt gibt das Plugin alle Artikel aus, die an diesem Tag in dem Monat über die Jahre geschrieben wurden. Die Parameters "day", "month", "year" und "range" werden ignoriert.
  • posts_max legt die Anzahl der Artikel fest, die angezeigt werden. 0 steht für "alle".

Beispiele: ayb_posts("day=30&before=&after=&showdate=0");Zeigt die Blogbeiträge von vor 30 Tagen an, ohne das Datum anzuzeigen. Die Beiträge werden nicht als Listenelemente ausgegeben, sondern einfach mit einem Zeilenumbruch hinter jedem Beitrag. ayb_posts("month=6&day=14&notfound=An dem Tag wurde nix gebloggt");Die Beiträge vor einem halben Jahr und zwei Wochen werden gelistet, inklusive Datum. Wurde an dem Datum kein Artikel geschrieben, dann wird der Text "An dem Tag wurde nix gebloggt" ausgegeben. ayb_posts("range=14&dateformat=y-m-d"); Schaut ob es vor einem Jahr Artikel geschrieben wurden. Wenn nicht, schaut das Plugin, ob in den nächsten 14 Tagen etwas geschrieben wurde und gibt die Beiträge vom nächstemöglichen Tag aus. ayb_posts("anniversary=1"); Zeigt Beiträge an, die am selben Tag und im selben Monat wie das aktuelle Datum geschrieben wurden, unabhängig vom Jahr. Also alle Artikel, die heute vor einem Jahr, vor zwei Jahren, vor drei Jahren und so weiter geschrieben wurden. Für Freunde des CSS gibt es auch die Möglichkeit, das Datum über die Klasse ayb_date, den Link über ayb_link und die notfound-Nachricht über ayb_notfound gestalten. #### Änderungen / Changelog

1.0.3Die h3-Tags im Widget-Titel werden wieder angezeigt (genauer gesagt die before- und after-titles) (Danke an HDS für den Hinweis) 1.0.1Bessere Unterstützung von PHP 7 1.0Neu: #thumbnail'-Muster um Beitragsbilder von Artikeln zu zeigen 0.9.5PHP-Notices behoben (Patch von lostfocus https://gist.github.com/lostfocus/a68f0689d20feceb7911 ) 0.9.4- Fix (nochmals): Manchmal werden andere Post-Typen (zum Beispiel Menüpunkt) als Artikel und Seiten angezeigt

0.9.3- Fix: Fehler mit PHP 5.3, wenn es im Template mit PHP aufgerufen wird.

0.9.2- Fix: Manchmal werden andere Post-Typen als Artikel und Seiten angezeigt

0.9.1- Kleinen Bugfix, bei manchen Systemen kam es zu Dastellungsproblemen in der Plugin-Übersicht im Backend

0.9- Maximale Anzahl der angezeigten Artikel festlegen

  • kleinere Bugfixes

0.8- Zeige Seiten an oder auch nicht

  • Entweder öffentliche oder private Artikel werden angezeigt -- oder auch beide.
  • Die Ausgabe kann über Muster angepasst werden: %link%, %title%, %date%, %excerpt% (Danke an Marcus von themenfreund.de für die excerpt-Idee)
  • Wordpress-Widget-Klasse wird verwendet (Plugin funktioniert nur ab Wordpress 2.8+)
  • OOP-Programmierung

0.7.1- fix: Wegen einem Problem in der gettext-Funktion bei PHP/Apache geben manche Server Fehlermeldungen aus. Um diesen Fehler zu vermeiden, muss ich leider die Übersetzungmöglichkeit des Widgets abschalten. Die Funktionalität bleibt voll erhalten, nur die Sprache des Widgets ist nur immer Englisch.

0.7- anniversary-Modus für die Suche an Artikeln am selben Tag in den letzten Jahren

  • range-Parameter für Bereichssuche
  • Beachtung von Zeitzonen
  • Bugfixes

0.6.1- Bugfix für Sidebars, die nicht "sidebar" heißen.

0.6- Plugin kann als Wordpress-Widget genutzt werden

  • Lokalisierung

0.5.3- XHTML-Bugfix (überflüssiges span

  • Bugfix PHP 5 bei leeren Funktionsparameter

0.5.2- Bugfix für tolerantere Zeitangaben (z.B. day > 364). Danke an AlohaDan für den Hinweis und Test.

0.5.1- Anpassung an MySQL-Versionen älter als MySQL 4.1.1

0.5- Erste öffentliche Betaversion

Download

a-year-before.zip (Version 0.9.3) With »A Year Before« you can show the titles of the articles, which were written a certain time ago. So you can show in a »historical corner«, what happend in your blog e.g. 30 days, 6 months or a year before. InstallationDownload the plugin and unzip the folder <em>a-year-before</em> in the plugin-folder of your Wordpress-installation. Then activate the plugin. If you use a theme which supports wordpress-widget, then simply go to the widget-administration and pull the widget on the sidebar. Use the output-pattern to define the look of the found articles. Possible patterns are: * %title% The title of the article * %link% The link to the article * %date% The date of the article * %excerpt% The excerpt of the article. You can define the number of displayed characters bei appending the number like %excerpt80%, which will display 80 characters. Example of an output-pattern: %date%: <a href="%link%">%title%<br/>%excerpt40%</a>If you want to use the plugin by PHP-code, then open your template-file — e.g. the sidebar — where you can insert the following PHP-code: <?php if (function_exists("ayb_posts")) { ?><div class="box"><h2>Posts a year ago</h2><ul><?php ayb_posts(); ?></ul></div><?php } ?>Configuration of the PHP-codeYou can pass some parameters in this scheme parameter1=value1&parameter2=value2&parameter3=value3 ...You can use the following parameters - day : the number of days ago you want to show the articles.

  • month : the number of month ago you want to show the articles.
  • year : the number of years ago you want to show the articles.
  • before : piece of HTML to insert before the title of the articles. Default <li>
  • after: piece of HTML to insert after the title of the articles. Default </li>
  • showdate: shows the date (showdate=1) before every title or not (showdate=0)
  • dateformat : dateformat as used by PHP. Default ist the german shortform »d.m.y«
  • notfound: the text the plugin will output, if no article is found on the defined date.
  • range: number of days the plugin will search back in the future (relative to the values of day, month and year above) for an article. Meant as a "round about this day"-feature. Default 0
  • anniversary: if set to 1, the plugin will display all articles ever blogged with the same number of day and month. The parameters "day", "month", "year" and "range" will be ignored if used.
  • posts_max: maximal number of articles to be displayed

Examplesayb_posts("day=30&before=&after=&showdate=0");Shows the titles of the articles written 30 days ago without showing the date. The articles will not been showed as a HTML-list but simply seperated by a linebreak. ayb_posts("month=6&day=14&notfound=Nothing blogged on this day.");The titles of the articles written half a year and two weeks before, also showing the date . If there was no article written on that day, the output will be »Nothing blogged on this day.« If you like CSS, you can style the date with the class ayb_date, the link of the article with the class ayb_link and the notfound-message by using the class ayb_notfound. Changelog**0.9.4**- Fix (again): Sometimes other post-types (like menu-items) were shown.

0.9.3- Fix: Error with PHP 5.3 when called by PHP-statement.

0.9.2- Fix: Sometimes other post-types than posts and pages were shown

0.9.1- Minor Bugfix of possible display-error in the plugin-list in backend

0.9- set number of articles to be listed

  • various fixes
  • changed url to my blog - https://herrthees.de is my new blog for programming, design, journalism, etc

0.8 - Option to show articles and/or pages

  • Option to show private and/or public articles
  • Output controlled by pattern: %link%, %title%, %date%, %excerpt% (Thanks to Marcus from themenfreund.de for the idea with the excerpt)
  • Wordpress-Widget-class used (Plugin now only works with Wordpress 2.8+)
  • OOP-Programming

0.7.1 - fix: due an issue with the gettext-function in PHP/Apache some server will output an warning/error-message. because of that error, the translations of the plugin will not longer work, but the plugin will.

0.7 - anniversary-mode

  • range-parameter
  • Timezone-support
  • Bugfixes

0.6.1 - Bugfix for sidebars not named "sidebar"

0.6 - Widget-function added

  • Localization

0.5.3 - XHTML-Bugfix (unnecessary span)

  • Bugfix PHP 5 Error with empty function-parameter

0.5.2 - Bugfix for more tolerant date-values (e.g. day > 364). Thanks to AlohaDan for hinting and testing.

0.5.1 - Adjustment for MySQL-versions older than MySQL 4.1.1

0.5 - First public beta

Download

a-year-before.zip (Version 0.9.3)