Würzblog

WordPress-Plugin: A Year Before

| 204 Kommentare

In english — or some­thing similar

Wenn ein Blog län­ger besteht, dann ist es ja fast schon ein his­to­ri­sches Doku­ment. Und so kann es inter­es­sant sein, was so vor einem Jahr im Blog pas­siert ist.

Zumin­dest stellte sich die­ses Pro­blem dem Würz­blog. Eine grobe Recher­che brachte mir kein Plu­gin für Word­Press, dass mir diese Funk­tio­na­li­tät bot. (Falls ich es ein­fach nur über­se­hen habe, dann gibt es jetzt ein Zwei­tes. ;-) ) Also habe ich mal schnell eines selbst geschrie­ben. :-)

Über­sicht

Mit „A Year Before” kann man Blog­be­träge anzei­gen las­sen, die vor einer bestimm­ten Zeit­spanne im Blog ver­öf­fent­lich wur­den. So kann man in einer „his­to­ri­schen Ecke” zei­gen las­sen, was vor z. B. 30 Tagen, 6 Mona­ten oder einem Jahr im Blog passierte.

Das Plu­gin ist nach wie vor im Beta-Stadium, ich garan­tiere also noch nicht, dass auch alles funk­tio­niert. Aber beim Tes­ten ist noch nichts Schlim­mes pas­siert … ;-)

Instal­la­tion

Das Plu­gin aus dem WordPress-Repository her­un­ter­la­den und das Ver­zeich­nis a-year-before mit den dar­in­lie­gen­den Dateien in den Plugin-Ordner von Word­Press schie­ben. Dann A Year Before bei den Plugins in der WordPress-Administration aktivieren.

Als Wid­get

Wenn man die Widget-Funktion von Word­Press nutzt, dann ist der Rest sehr sim­pel. Ein­fach in der Widget-Verwaltung A Year Before auf die Side­bar zie­hen. Bei Bedarf kann man im Popup-Dialog alles Mög­li­che einstellen.

Als PHP-Code

Im Tem­plate — die Side­bar bie­tet sich dafür an — an die Stelle, an der die Bei­trags­liste erschei­nen soll, fol­gen­den PHP-Code ein­fü­gen:

<?php if (function_exists("ayb_posts")) { ?>
<div class="box">
<h2>Vor einem Jahr</h2>
<ul>
<?php ayb_posts(); ?>
</ul>
</div>
<?php } ?>

Ent­schei­dend ist die Zeile <?php ayb_posts(); ?>, hier wer­den die zurück­lie­gen­den Bei­träge aus­ge­ge­ben. Alles andere ist nur Bei­werk, das auch kurz erwähnt wer­den soll. Die erste und letzte PHP-Zeile sor­gen nur dafür, dass keine Feh­ler auf­tritt, wenn das Plu­gin nicht instal­liert oder akti­viert ist. Das DIV ist ein Con­tai­ner­ele­ment, mit dem man den gan­zen Block mit­tels CSS gestal­ten könnte. Das H2 ist die Über­schrift über der Liste, das UL erzeugt eine Liste — dazu spä­ter mehr.

Wer­den beim Auf­ruf von ayb_posts keine Para­me­ter in den Klam­mern ange­ge­ben, dann gibt das Plu­gin die Bei­träge inklu­sive Datum als Lis­ten­ele­mente aus, die vor einem Jahr geb­loggt wurden.

Kon­fi­gu­ra­tion

Die Optio­nen für das Plu­gin wird in fol­gen­der Form über­ge­ben:
parameter1=wert1&parameter2=wert2&parameter3=wert3 ...

Fol­gende Para­me­ter ste­hen zur Verfügung:

  • day gibt die Anzahl der Tage an, vor denen die Bei­träge ange­zeigt wer­den sollen.
  • month gibt die Anzahl der Monate an, vor denen die Bei­träge ange­zeigt wer­den sollen.
  • year gibt die Anzahl der Jahre an, vor denen die Bei­träge ange­zeigt wer­den sollen.
  • before gibt HTML-Code an, der vor jedem alten Bei­trag steht. Stan­dard­mä­ßig das Lis­ten­ele­ment <li>
  • after gibt HTML-Code an, der nach jedem alten Bei­trag steht. Stan­dard­mä­ßig das Lis­ten­ele­men­tende </li>
  • show­date schal­tet die Anzeige des Datums vor jedem Bei­trag ein (Wert=1, Stan­dard­wert) oder aus (Wert=0)
  • datefor­mat ist für die For­ma­tie­rung des ange­zeig­ten Datums vor den Bei­trä­gen. Die For­matan­ga­ben sind ana­log zum PHP-Befehl date. Als Stan­dard dient die deut­sche Datums­kurz­form „d.m.y”, was z. B. zur Aus­gabe 27.12.06 führt.
  • not­found ist der Text der aus­ge­ge­ben wird, wenn keine Beträge an dem Tag gefun­den wurden.
  • range gibt eine Anzahl von Tagen an, die in Rich­tung Zukunft nach Arti­keln gesucht wird, wenn am gwünsch­ten Tag kein Bei­trag geschrie­ben wurde.
  • anni­versary steu­ert den „Jahrestag-Modus”. Wenn auf 1 gesetzt gibt das Plu­gin alle Arti­kel aus, die an die­sem Tag in dem Monat über die Jahre geschrie­ben wur­den. Die Para­me­ters „day”, „month”, „year” und „range” wer­den ignoriert.

Bei­spiele:
ayb_posts("day=30&before=&after=&showdate=0");
Zeigt die Blog­bei­träge von vor 30 Tagen an, ohne das Datum anzu­zei­gen. Die Bei­träge wer­den nicht als Lis­ten­ele­mente aus­ge­ge­ben, son­dern ein­fach mit einem Zei­len­um­bruch hin­ter jedem Beitrag.

ayb_posts("month=6&day=14&notfound=An dem Tag wurde nix gebloggt");
Die Bei­träge vor einem hal­ben Jahr und zwei Wochen wer­den gelis­tet, inklu­sive Datum. Wurde an dem Datum kein Arti­kel geschrie­ben, dann wird der Text „An dem Tag wurde nix geb­loggt” ausgegeben.

ayb_posts(„range=14&dateformat=y-m-d”);
Schaut ob es vor einem Jahr Arti­kel geschrie­ben wur­den. Wenn nicht, schaut das Plu­gin, ob in den nächs­ten  14 Tagen etwas geschrie­ben wurde und gibt die Bei­träge vom nächs­te­mög­li­chen Tag aus.

ayb_posts(„anniversary=1″);
Zeigt Bei­träge an, die am sel­ben Tag und im sel­ben Monat wie das aktu­elle Datum geschrie­ben wur­den, unab­hän­gig vom Jahr. Also alle Arti­kel, die heute vor einem Jahr, vor zwei Jah­ren, vor drei Jah­ren und so wei­ter geschrie­ben wurden.

Für Freunde des CSS gibt es auch die Mög­lich­keit, das Datum über die Klasse ayb_date, den Link über ayb_link und die notfound-Nachricht über ayb_notfound gestalten.

Ände­run­gen / Changelog

0.8

  • Zeige Sei­ten an oder auch nicht
  • Ent­we­der öffent­li­che oder pri­vate Arti­kel wer­den ange­zeigt — oder auch beide.
  • Die Aus­gabe kann über Mus­ter ange­passt wer­den: %link%, %title%, %date%, %excerpt% (Danke an Mar­cus von themenfreund.de für die excerpt-Idee)
  • WordPress-Widget-Klasse wird ver­wen­det (Plu­gin funk­tio­niert nur ab Word­Press 2.8+)
  • OOP-Programmierung

0.7.1

  • fix: Wegen einem Pro­blem in der gettext-Funktion bei PHP/Apache geben man­che Ser­ver Feh­ler­mel­dun­gen aus. Um die­sen Feh­ler zu ver­mei­den, muss ich lei­der die Über­set­zung­mög­lich­keit des Wid­gets abschal­ten. Die Funk­tio­na­li­tät bleibt voll erhal­ten, nur die Spra­che des Wid­gets ist nur immer Englisch.

0.7

  • anniversary-Modus für die Suche an Arti­keln am sel­ben Tag in den letz­ten Jahren
  • range-Parameter für Bereichssuche
  • Beach­tung von Zeitzonen
  • Bug­fi­xes

0.6.1

  • Bug­fix für Side­bars, die nicht „side­bar” heißen.

0.6

  • Plu­gin kann als WordPress-Widget genutzt werden
  • Loka­li­sie­rung

0.5.3

  • XHTML-Bugfix (über­flüs­si­ges span
  • Bug­fix PHP 5 bei lee­ren Funktionsparameter

0.5.2

  • Bug­fix für tole­ran­tere Zeit­an­ga­ben (z.B. day > 364). Danke an Alo­haDan für den Hin­weis und Test.

0.5.1

  • Anpas­sung an MySQL-Versionen älter als MySQL 4.1.1

0.5

  • Erste öffent­li­che Betaversion

Down­load

a-year-before.zip (Ver­sion 0.7.1)

204 Kommentare

  1. hallo ralf,

    danke für das plugin.

    1. wäre es mög­lich, dein plu­gin so zu nut­zen (ein­zu­stel­len), dass bei­spiels­weise alle arti­kel des aktu­el­len monats vor einem jahr gelis­tet wer­den?
    2. ich würde das ergeb­nis hin­ter dem aus­ga­be­da­tum gern auf eine neue zeile brin­gen.
    bei­spiel:
    nicht so — 14.02.2011 Keine Bei­träge an die­sem Tag.
    son­dern so — 14.02.2011
    Keine Bei­träge an die­sem Tag.
    wo muss ich das br-tag set­zen?
    3. um das wig­det optisch ein wenig auf­zu­peppe, würde ich gern unter der widget-überschrift eine kleine gra­fik ein­fü­gen.
    wo genau in der ayb_posts.php muss ich das img-tag einfügen?

  2. Hi, ich habe ein Pro­blem mit der Dar­stel­lung:
    Ich nutze den PHP-Bereich. Dann möchte ich einer­seits das Datum unter­drü­cken — was lei­der nicht so funzt wie gewünscht und zum ande­ren hätte ich den Wunsch ent­we­der Excerpt oder den gan­zen Arti­kel anzu­zei­gen.
    Wie bringe ich es da rein? Kannst Du bitte kurz hel­fen?
    Danke

  3. Ich habe ein Pro­blem mit der Darstellung!

    Und zwar möchte ich, das die Arti­kel ohne Auf­zäh­lungs­zei­chen oder Nume­rie­rung ange­zeigt werden.

    Ändere ich die ayb_posts.php daher ent­spre­chend in Zeile 156 von in habe ich plötz­lich statt der deut­schen Aus­gabe ›Am … Lies‹ die eng­li­sche ›On … Read‹.

    Und dann bin ich auch irgend­wie zu begriffs­stut­zig, um das excerpt ein­zu­bin­den! Wie muss da ein ent­spre­chen­der Befehl lauten?

  4. Ich mag die­ses Plu­gin. Es ist fast genau das, was ich brau­che. Aller­dings würde Ich mag, um es Liste Bei­träge in nur eine Kate­go­rie. Ich habe ver­sucht, den Code in das Plu­gin zu ändern, aber es hat nicht funk­tio­niert. Könn­ten Sie die­sen Para­me­ter, um das Plu­gin hin­zu­ge­fügt wer­den? Ich bin mit dem PHP-Code, nicht das Widget.

  5. Hmpf. Dann halt ohne Klam­mern ;)

    Damit:
    php if (function_exists(„ayb_posts”)) {
    php ayb_posts();
    php }

  6. Hmmm. Das letzte Update ist mei­nem Blog nicht gut bekom­men. Den zwei­ten Bei­trag zeigt er an, denn ers­ten nicht!?

    Warning: Mis­sing argu­ment 1 for ayb_posts(), cal­led in /home/www/web1/html/hisky.de/wp-content/themes/i3theme-1–7-classic/sidebar-left.php on line 12 and defined in /home/www/web1/html/hisky.de/wp-content/plugins/a-year-before/ayb_posts.php on line 372

    Am 11.10.2010: Lies Wenn in so man­chem Hirn ein Licht auf­geht wirds gefähr­lich… (11.10.2010)

  7. Es sieht so aus, als ob die Aus­wahl der Arti­kel im Anniversary-Modus Zeitzonen-korrekt ist, aber die Anzeige des Datums (sofern man den Tag anzei­gen lässt) nicht. Bei­spiel: Ein Arti­kel vom 4.10.XX, 0:37, wird am 4.10. kor­rekt aus­ge­wählt, ange­zeigt wird aber das Datum 3.10.XX.

  8. Pingback: » Ältere Artikel in der Sidebar anzeigen [WordPress Plugin] web-newspaper

  9. I really like this plu­gin. It is almost exactly what I need. Howe­ver, I would like to have it list posts from only one cate­gory instead of all of them. I tried to change the code wit­hin the plu­gin, but it didn’t work. Is there a chance this could be added to the para­me­ters? I am using the php code, not the widget.

    I am try­ing to do a „this day in history” post list on my home page that shows any posts from the cur­rent day for a spe­ci­fic cate­gory. Help?

  10. Hi Ralf,
    hab Dein Plu­gin aktua­li­siert und die Mus­ter ›%date%: %title% (%link%) ‹ ver­wen­det — aller­dings ist dann das, was ange­zeigt wird, nicht mehr als Link klick­bar? Hab ich was vergessen?

  11. Ich hab mir gerade die Lösung gebastelt.

    Soll ich dir das mailen?

  12. Besteht eigent­lich auch die Mög­lich­keit, einen Aus­zug der Arti­kel mit anzu­zei­gen? Bräuch­ten ja ›nur‹ die ers­ten 10 Wör­ter sein!

  13. Pingback: Wordpress Plugins | Angelslayers Rumpelkammer

  14. Pingback: Wordpress Community - WP Gemeinschaft | Blog | WordPress-Plugin: A Year Before » Beiträge, Plugin, Jahr, Version, Beitrag, Datum » Würzblog

  15. Pingback: Welche Plugins installieren? « web log buch

  16. Pingback: WordPress-Plugins - Ein Blick hinter die Kulissen | Nilas Blog

  17. Pingback: Januar 2010: Eine Übersicht der benutzten Plugins auf meinem Blog // hombertho.de

  18. Hey, sehr schö­nes Plugin.

    Sag mal, gibts die mög­lich­keit die „Pages” (Also die erstell­ten Sei­ten) aus der Auf­lis­tung zu ent­fer­nen?
    Ich möchte nur die gepos­te­ten Arti­kel im Blog ange­zeigt bekommen.

    • Ich habe ges­tern auf Word­Press 3.1.3 aktua­li­siert, und nun zeigt er für vor einem Monat mehr­fach die Begriffe ›Recent Posts‹ und Slide®-x (x steht für eine fort­lau­fende Zahl) an.

      Wo könnte der Feh­ler liegen?

  19. Pingback: Wegilinks: Zeitmanagement für Trailer | Just WeGi

  20. Pingback: Unter der Motorhaube #6 » F!XMBR

  21. Pingback: Unter der Motorhaube #5 » F!XMBR

  22. Pingback: Heute vor einem Jahr | _n1Ls_

  23. Pingback: » Plugins auf Web-Newspaper web-newspaper

  24. Ich kann das bestä­ti­gen, Ralf, es funk­tio­niert pro­blem­los auf der 2.9.1er Ver­sion! Bes­ten Dank für die Mühe und für das Plugin!

    Gruss
    Ivo

  25. @ivo: Stimmt, das Chan­ge­log gibt es nur hier: http://wordpress.org/extend/pl.….changelog/

    Ich habe das Wuerz­blog heute aus 2.9.1 „geup­dated”, wie erwar­tet scheint das Plu­gin zu funk­tio­nie­ren. :-)
    Eine neue AYB-Version kommt bald …

  26. Hallo!

    Ich bin über meine WP-Plugin Seite zu dir gestos­sen und sehe, dass es kei­nen Chan­ge­log für die aktu­elle 0.7.2 Ver­sion gibt.

    Da ich WP 2.9.1 instal­liert habe, würde es mich freuen zu wis­sen, ob es da Pro­bleme gibt.

    Bes­ten Dank für einen kur­zen Feedback

  27. Dem Wunsch würde ich mich auch mit etwas Ver­spä­tung anschlie­ßen wollen

  28. @ #161 Day­Light: Ja, das bräuchte ich auch, bitte!

  29. Hey Ralf, kannst du mal ein a-year-ago-2 plu­gin ent­wer­fen? Also das glei­che Plu­gin das ein­fach nur unter ande­rem Namen läuft?
    Würde gerne noch eine zweite Rubrik bei mir im Blog ein­stel­len: 2 years ago
    Das geht aber net so ein­fach :-D

  30. Pingback: CSS-Geschmack, Typografie und Neue Plugins – Spontis Weblog

  31. Pingback: Posts from years before | Eric Cheng’s Journal

  32. You don’t need to post my pre­vious com­ment I just wan­ted to let you know the issue. I fixed the issue by run­ning a query to set all publis­hed post_date_gmt that were ›0000–00-00 00:00:00′  to the post_date.

  33. I am using ver­sion 0.7.2 of „A Year Before” and love it. It is a great and use­ful plu­gin. There was one issue I came across. It deals with posts that I impor­ted from blog­ger. It seems that their post_date_gmt was strip­ped and was set to „0000–00-00 00:00:00″ This cau­ses the post to be found but to show up as 31 Decem­ber 1969. Just wan­ted to let you know because it could be easily fixed by che­cking for that and using post_date instead. Thanks again for all your hard work on this plugin!

  34. Ja, der Bug­fix ist dir gewid­met. ;-)

  35. @Rechts­lupe: Ok, kann ich machen. Die neue Ver­sion steht auch schon halb in den Start­lö­chern, aber der Bug­fix war jetzt dringender.

  36. Hallo,

    danke für das nette Plu­gin. Wir haben es inzwi­schen auf meh­re­ren Blogs lau­fen und es ist immer wie­der erstaun­lich, was dabei an alten Bei­träge zutage kommt.

    Eine kleine Bitte wäre da jedoch für die nächste Ver­sion: Es wäre schön, wenn die Links noch mit einem title-Tag ver­se­hen würden.

    Ist nur eine Ände­rung in Zeile 169:
    echo $before.$pdate.‹<a href=„›.$plink.‹” class=„ayb_link” title=„›.$ptitle.‹”>‹.$ptitle.‹</a>‹.$after.”\r”;

  37. Hi Ralf,

    nur keine Eile! Ich denke (hoffe!), dass hier jeder ver­steht, dass deine Frei­zeit kost­bar und knapp ist, das kennt sicher jeder. :)
    Abge­se­hen davon, bei mir dau­ert es eh noch ein paar Monate, bis das erste Jahr voll ist, also von mei­ner Seite her gaaar kein Streß. ;)

    Liebe Grüße, Manuel

  38. Ich muss euch noch etwas ver­trös­ten, mein Job braucht gerade mal all meine Zeit. Ich hoffe nächste Woche komme ich dazu. Viel­leicht auch schon am Wochen­ende. Sorry.

Hinterlasse eine Antwort

Pflichtfelder sind mit * markiert.

*