Beitragsanzahl mit Twig ermitteln

Wollen Sie im Rahmen des Twig-Templatings unter PICO die Anzahl der Beiträge in einem Ordner ermitteln, dann ist dieser Code die Lösung

Inhalt

Der Pico loop

Die Templatesprache Twig-Symfony bietet bereits einige vorgefertigte Befehle, mit denen es leicht möglich ist die Anzehl der Beiträge eines Ordners zu ermitteln. Für das Coding sollte zunächst der folgende Pico-Loop unterstellt werden, welcher die Ordner der obersten Stufe durchläuft:

...  {% for page in pages(current_page.id) if not page.hidden %}
...  ...
...  {% endfor %}

Code

Elemente des ARRAY mit length zählen

Die Beiträge des Ordners werden im Loop der Variablen page zugewiesen. Die Anzahl der Elemente kann dann ganz leicht mit dem Twig-Filter length ausgegeben werden. Folglich ergibt sich der folgende Codeschnipsel innerhalb des Loop:

...  {% for page in pages(current_page.id) if not page.hidden %}
...      {% if page.meta.template == 'index' %}
...          {{ pages(page.id, depth=0)|length }} Beiträge im Ordner
...      {% endif %}
...  {% endfor %}

Code

Die Variable pages nimmt folglich das Array aller Beiträge page in diesem spezifischen Ordner auf und kann deren Anzahl mit dem Twig-Filter

...|length

Code

anzeigen - sofern die aktuelle page die Templateangabe index enthält, was auf einen Ordner statt auf einen Post hindeutet. Dabei ist die Angabe von

(page.id, depth=0)

Code

wichtig, damit ausschließlich Beiträge innerhalb des aktuellen Ordners ohne Unterordner gesammelt werden.

Twig Syntax des Filters length

Twig-Symfony: Doku


FlightCMS
2024-01-28
PHP8
post
0