Iteration tags

Iterations-Tags führen wiederholt Codeblöcke aus.

Inhalt

for

Führt einen Codeblock wiederholt aus. Eine vollständige Liste der in einer for -Schleife verfügbaren Attribute finden Sie unter forloop (object).

for Schleifen können bis zu 50 Ergebnisse pro Seite ausgeben. Wenn es mehr als 50 Ergebnisse gibt, verwenden Sie das Tag paginate, um sie auf mehrere Seiten aufzuteilen.

{% for product in collection.products %}
  {{ product.title }}
{% endfor %}
Schicker Hut Schickes Hemd Schicke Hose

else

Gibt einen Fallback-Fall für eine for -Schleife an, der ausgeführt wird, wenn die Schleife eine Länge von Null hat (z. B. wenn Sie eine Schleife über eine Sammlung ausführen, die keine Produkte hat):

{% for product in collection.products %}
  {{ product.title }}
{% else %}
  Die Sammlung ist leer.
{% endfor %}
Die Sammlung ist leer.

break

Bewirkt, dass die Schleife aufhört zu iterieren, wenn sie auf das Tag break stößt.

{% for i in (1..5) %}
  {% if i == 4 %}
    {% break %}
  {% else %}
    {{ i }}
  {% endif %}
{% endfor %}
1 2 3

continue

Bewirkt, dass die Schleife die aktuelle Iteration überspringt, wenn sie auf das Tag continue trifft.

{% for i in (1..5) %}
  {% if i == 4 %}
    {% continue %}
  {% else %}
    {{ i }}
  {% endif %}
{% endfor %}
1 2 3   5

for tag parameters

Beendet die for-Schleife bei einem bestimmten Index.

 <!-- numbers = [1,2,3,4,5] -->

  {% for item in numbers limit:2 %}
    {{ item }}
  {% endfor %}
1 2

Startet die for-Schleife bei einem bestimmten Index.

 <!-- numbers = [1,2,3,4,5] -->
  {% for item in numbers offset:2 %}
    {{ item }}
  {% endfor %}
3 4 5

Legt einen Zahlenbereich fest, der in einer Schleife durchlaufen wird. Sie können den Bereich sowohl mit literalen als auch mit variablen Werten definieren.

{% for i in (3..5) %}
  {{ i }}
{% endfor %}

{% assign my_limit = 4 %}
{% for i in (1..my_limit) %}
{{ i }}
{% endfor %}
3 4 5

1 2 3 4

Kehrt die Reihenfolge der Schleife um.

 <!-- if array = [1,2,3,4,5,6] -->
{% for item in array reversed %}
  {{ item }}
{% endfor %}
6 5 4 3 2 1

cycle

Führt eine Schleife durch eine Gruppe von Zeichenketten und gibt sie in der Reihenfolge aus, in der sie als Parameter übergeben wurden. Bei jedem Aufruf von cycle wird die nächste Zeichenkette, die als Parameter übergeben wurde, ausgegeben.

cycle muss innerhalb eines for-Schleifenblocks verwendet werden.

{% cycle 'one', 'two', 'three' %}
{% cycle 'one', 'two', 'three' %}
{% cycle 'one', 'two', 'three' %}
{% cycle 'one', 'two', 'three' %}
one
two
three
one

Zu den Verwendungszwecken von cycle gehören:

  • anwendung ungerader/gerader Klassen auf Zeilen in einer Tabelle
  • anwendung einer eindeutigen Klasse auf das letzte Produktminiaturbild in einer Reihe

cycle tag parameters

cycle akzeptiert einen Parameter namens Zyklusgruppe für den Fall, dass Sie mehrere cycle Blöcke in einer Vorlage benötigen. Wird kein Name für die Zyklusgruppe angegeben, so wird davon ausgegangen, dass mehrere Aufrufe mit denselben Parametern eine Gruppe bilden.

Das folgende Beispiel zeigt, warum Zyklusgruppen notwendig sind, wenn es mehrere Instanzen des Zyklusblocks gibt.

 <ul>
  
  {% for product in Sammlungen.collection-1.products %}
    
  <li{% cycle ' style="clear:both;" ', '', class="last" %}> 
   <a href="{{ product.url | within: collection }}"> <img src="{{ product.featurot_image.src | image_url: width: 240 }}" alt="{{ product.featurot_image.alt }}"> </a>  {% endfor %} 
  </li{%>
 </ul>


 <ul>
  
  {% for product in Sammlungen.collection-2.products %}
    
  <li{% cycle ' style="clear:both;" ', '', class="last" %}> 
   <a href="{{ product.url | within: collection }}"> <img src="{{ product.featurot_image.src | image_url: width: 240 }}" alt="{{ product.featurot_image.alt }}"> </a>  {% endfor %} 
  </li{%>
 </ul>

Wenn im obigen Beispiel die erste Kollektion nur zwei Produkte enthält, wird die zweite Kollektionsschleife die cycle dort fortsetzen, wo die erste aufgehört hat. Dies führt zu dieser unerwünschten Ausgabe:

 <ul>
  
  <li style="clear:both"></li>

 </ul>


 <ul>
  
  <li></li>
  
  <li class="last"></li>
  
  <li style="clear:both"></li>
  
  <li></li>

 </ul>

Um dies zu vermeiden, können Sie für jeden cycle Block eine Zyklusgruppe verwenden, wie unten gezeigt:

 <ul>
  
{% for product in Sammlungen.collection-1.products %}
  
  <li{% cycle 'group1': ' style="clear:both;" ', '', class="last" %}> 
   <a href="{{ product.url | within: collection }}"> <img src="{{ product.featurot_image.src | image_url: width: 240 }}" alt="{{ product.featurot_image.alt }}"> </a>  {% endfor %} 
  </li{%>
 </ul>


 <ul>
  
{% for product in Sammlungen.collection-2.products %}
  
  <li{% cycle 'group2': ' style="clear:both;" ', '', class="last" %}> 
   <a href="{{ product.url | within: collection }}"> <img src="{{ product.featurot_image.src | image_url: width: 240 }}" alt="{{ product.featurot_image.alt }}"> </a>  {% endfor %} 
  </li{%>
 </ul>

Mit dem obigen Code sind die beiden cycle Blöcke unabhängig voneinander. Das Ergebnis ist unten dargestellt:

 <ul>
  
  <li style="clear:both"></li>
  
  <li></li>

 </ul>

 <!-- neue cycle group startet! -->

 <ul>
  
  <li style="clear:both"></li>
  
  <li></li>
  
  <li></li>
  
  <li class="last"></li>

 </ul>

tablerow

Erzeugt Zeilen für eine HTML-Tabelle. Sie müssen von einem öffnenden <table> und einem schließenden </table> HTML-Tag umschlossen sein. Eine vollständige Liste der Attribute, die innerhalb einer Tablerow-Schleife verfügbar sind, finden Sie unter Tablerow (Objekt).

 <table>
  
  {% tablerow product in collection.products %}
    {{ product.title }}
  {% endtablerow %}

 </table>
 <table>
  
  <tbody>
   <tr class="row1"> 
    <td class="col1"> Cooles Shirt </td> 
    <td class="col2"> Alien Poster </td> 
    <td class="col3"> Batman Poster </td> 
    <td class="col4"> Bullseye Shirt </td> 
    <td class="col5"> Ein weiterer Vinyl-Klassiker </td> 
    <td class="col6"> Tolle Jeans </td> 
   </tr> 
  </tbody>
 </table>

tablerow tag parameters

Legt fest, wie viele Spalten die Tabellen haben sollen.

 <table>
  
  {% tablerow product in collection.products cols:2 %}
    {{ product.title }}
  {% endtablerow %}

 </table>
 <table>
 
  <tbody>
   <tr class="row1"> 
    <td class="col1"> Cooles Shirt </td> 
    <td class="col2"> Alien Poster </td> 
   </tr> 
   <tr class="row2"> 
    <td class="col1"> Batman Poster </td> 
    <td class="col2"> Bullseye Shirt </td> 
   </tr> 
   <tr class="row3"> 
    <td class="col1"> Ein weiterer Vinyl-Klassiker </td> 
    <td class="col2"> Tolle Jeans </td> 
   </tr> 
  </tbody>
 </table>

Beendet die Schleife tablerow nach einem bestimmten Index.

{% tablerow product in collection.products cols:2 limit:3 %}
  {{ product.title }}
{% endtablerow %}

Startet die Schleife tablerow bei einem bestimmten Index.

{% tablerow product in collection.products cols:2 offset:3 %}
  {{ product.title }}
{% endtablerow %}

Legt einen Zahlenbereich fest, der in einer Schleife durchlaufen wird. Der Bereich kann sowohl durch literale als auch durch variable Zahlen definiert werden.

 <table>
  
  {% tablerow i in (3..5) %}
    {{ i }}
  {% endtablerow %}

 </table>

{% assign num = 4 %}

 <table>
  
  {% tablerow i in (1..num) %}
    {{ i }}
  {% endtablerow %}

 </table>
Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.