24
05

Mal eine WordPress-Frage

Mal eine WordPress-Frage

Ich brau­che mal Hilfe bei Word­Press, Google kann mir keine brauch­ba­res Ant­wort lie­fern. Ich möchte mein Archiv noch­mal ändern. Hierzu brau­che ich eine pas­sende HTML-Struktur und diese aus WP zu quet­schen, ent­puppt sich als Pro­blem.

Ein­fach aus­ge­drückt, benö­tige ich logi­sche (sepa­rate) HTML-Elemente für eine Ord­nung aller Arti­kel nach Jah­ren und Mona­ten. Momen­tan bekomme ich nur eine lange Liste, die sämt­li­che Arti­kel nach Datum in die ent­spre­chen­den Monate ord­net. Damit bekomme ich aber bis­her keine sepa­rate Liste für jedes ein­zelne Jahr. Solch eine Liste möchte ich für jedes Jahr sepa­rat, ohne dafür manu­ell jede Jah­res­zahl hart als fixe String-Variable zu nut­zen. Unge­fähr sowas möchte ich errei­chen. Es müs­sen nicht unbe­dingt Lisen sein. Kern­punkt ist, dass ich eine quasi dop­pelte Ein­ord­nung für jeden Arti­kel benö­tige. Ein­mal für den Monat und für das Jahr.

2008
    - Januar
    - Februar
        - Artikel 1
        - Artikel 2
        - Artikel 3
        - ...
    - März
    - ...
    
2007
    - Januar
    - Februar
        - Artikel 1
        - Artikel 2
        - Artikel 3
        - ...
    - März
    - ...

2006
    - Januar
    - Februar
        - Artikel 1
        - Artikel 2
        - Artikel 3
        - ...
    - März
    - ...   

Ich ste­cke hier fest. Eigentlch doch keine schwie­rige Sache. Sowas muss sich doch irgend­wie umset­zen las­sen.

Update

Mal ein Aus­schnitt aus dem Quell­code der­zeit. Alles noch nicht ansehn­lich, zum Tes­ten halt.

Vor­weg: ich habe keine Ahnung von Word­Press ;-)

Trotz­dem würde ich fol­gende Vor­ge­hens­weise mal aus­pro­bie­ren: die Archiv-Seite ist ver­mut­lich eine PHP Datei, die per foreach-Schleife ein Array durch­läuft, wel­ches die ein­zel­nen Bei­träge ent­hält.

Nun kannst du am Ende jedes Schlei­fen­durch­laufs den Monat des Bei­trags mer­ken

$last­Month = date(‘m’, $varia­ble­Di­eDie­Zeit­De­s­Ein­trags­Ent­ha­elt); // vor­aus­ge­setzt das Datum ist im Unix-System-Time For­mat gespei­chert, ansons­ten hilft sub­str()

und am Anfang jedes Durch­laufs den Monat des letz­ten Ein­trags mit dem aktu­el­len ver­glei­chen:

if ($last­Month != date(‘m’, $varia­ble­Di­eDie­Zeit.…)) { print “<ul>”; }

Ich denke das Prin­zip ist klar, sollte nicht son­der­lich schwie­rig zu imple­men­tie­ren sein.

  • #2
  • Mi, 17. September 2008
  • ben_ schrieb:

Uijui­jui. Mit wel­chem PHP-Code / Tem­pla­te­tag bekommst Du denn die aktu­elle Test­aus­gabe denn auf die Test­seite?

  • #3
  • Mi, 17. September 2008
  • ben_ schrieb:

Grund­sät­zich lau­tet das Zau­ber­wort in dem Fall aber “Mehr­di­men­sio­na­les Array”. Dafür bräuchte man aber die Roh­da­ten und nicht fer­tig geren­der­tes HTML.

Webmaster

Kein Template-Tag. Alles bis­her Bau­stelle. Ich ziehe alle Ein­träge mit get_posts in einen Array und ver­su­che dann irgend­wie Ord­nung rein zu brin­gen. Wie man sieht, mit einem klei­nen Fort­schritt. Die Liste erkennt nun, wann ein neues Jahr los­geht nur bekomme ich noch keine Aus­gabe hin, wenn ein Jahr auf­hört. Könnte natür­lich leicht trick­sen und Aufhören/Anfang als eines behan­delt, aber da würde mein HTML spä­ter im Tem­plate lei­den.

Webmaster

Hab mal einen Link zum aktu­el­len Quell­text zuge­fügt.

  • #6
  • Mi, 17. September 2008
  • ben_ schrieb:

Das ist super! Warte. Ich mach Dir das gerade.

  • #7
  • Mi, 17. September 2008
  • ben_ schrieb:

Hab lei­der kein Word­Press zum Aus­pro­bie­ren, und die prints sind auch häß­lich, aaaaber das wäre der Weg: http://anmutunddemut.de/tests/listen.txt

Webmaster

Das nehm ich mal so mit nach Hause :) Danke erst­mal, viel­leicht wühl ich mit heute noch durch. Ansons­ten wird das dei­nem Archiv vom Auf­bau her sehr nahe kom­men, wenn ich die Struk­tur so zum Lau­fen kriege.

Webmaster

So ein Mist *fg*, der erste Test funk­tio­niert schon. Die Tage brin­gen sogar noch eine zusätz­lich Ebene ins Spiel. Bin erst­mal wunsch­los glück­lich. :D

  • #10
  • Mi, 17. September 2008
  • ben_ schrieb:

Zucker! Viel Spaß damit!

  • #11
  • Do, 06. Oktober 2011
  • Bob schrieb:

Mitt­ler­weile kann man “echo=0″ an die Funk­tion über­ge­ben, damit erhält man den Rück­ga­be­wert der Funk­tio­nen, wel­chen man dann par­sen / split­ten kann um das gewünschte Ergeb­nis sich sel­ber zusam­men­zu­stel­len.

Kommentar schreiben
safari bug

Vorschau:

HTML ist in Kommentaren zugelassen. Erlaubt sind die HTML-Tags:
<a href>, <i>, <p>, <strong>, <em>, <ul>, <ol>, <li>, <blockquote>.
Alle themenfremden oder persönlichkeistverletzenden Beiträge werden gelöscht, also immer schön sachlich argumentieren.

schrieb: