Der WordPress Loop ist aus seiner Historie heraus super, um klassische Blog & News Beiträge zu generieren. Manchmal möchte man seine Template PHP Files aber nicht mit Loops zu kleistern, oder mag einfach ordentlichen Code haben. Dann kann es nützlich sein, Posts als Array nach dem Query zu speichern.
Das Code-Beispiel hier kann in die functions.php eingebaut werden, oder über diese verwiesen werden. Damit bekommt man eine Funktion, welche überall auf der Seite aufgerufen werden kann, z.B. in Sidebars oder Javascript-Widgets. Die Funktion ist jetzt nur ein Beispiel und kann frei angepasst werden.
Die Struktur der Funktion:
- $defaults – Hier kann man Argumente für den Loop Voreinstellen, falls man z.b. immer 50 Posts aus der Kategorie ‚allgemein‘ haben will
- $post_loop_args – Ist das Array mit den finalen Query Variablen, da die $defaults über den Funktionsaufruf überschrieben werden können ( siehe 2. Beispiel )
- $single_post_id – speichert nur die ID des aktuellen zu bearbeitenden Post in der Schleife, dass die Funktion nicht 10x aufgerufen wird
- $single_post – Ist ein einzelner Post der im Array gespeichert wird. Das ist eine Beispiel-Struktur und kann frei angepasst werden
- array_push() – fügt das $single_post Array an das große Array an, welches von der Funktion zurück gegeben wird
Das Post Array, welches die Funktion zurück gibt, kann dann an eure eigenen HTML Render Funktionen übergeben werden oder anders genutzt werden. Es ist aber wesentlich einfacher ( meiner Meinung nach ) mit einem Array zuarbeiten als mit einem regulärem Post-Loop.