Iteration tags run blocks of code repeatedly.
Repeatedly executes a block of code. For a full list of attributes available within a for loop, see forloop (object).
Input
{% for product in collection.products %} {{ product.title }} {% endfor %}
Output
hat shirt pants
Causes the loop to stop iterating when it encounters the break tag.
Input
{% for i in (1..5) %} {% if i == 4 %} {% break %} {% else %} {{ i }} {% endif %} {% endfor %}
Output
1 2 3
Causes the loop to skip the current iteration when it encounters the continue tag.
Input
{% for i in (1..5) %} {% if i == 4 %} {% continue %} {% else %} {{ i }} {% endif %} {% endfor %}
Output
1 2 3 5
Limits the loop to the specified number of iterations.
Input
<!-- if array = [1,2,3,4,5,6] --> {% for item in array limit:2 %} {{ item }} {% endfor %}
Output
1 2
Begins the loop at the specified index.
Input
<!-- if array = [1,2,3,4,5,6] --> {% for item in array offset:2 %} {{ item }} {% endfor %}
Output
3 4 5 6
Defines a range of numbers to loop through. The range can be defined by both literal and variable numbers.
Input
{% for i in (3..5) %} {{ i }} {% endfor %} {% assign num = 4 %} {% for i in (1..num) %} {{ i }} {% endfor %}
Output
3 4 5 1 2 3 4
Reverses the order of the loop. Note that the flag’s spelling is different to the filter reverse.
Input
<!-- if array = [1,2,3,4,5,6] --> {% for item in array reversed %} {{ item }} {% endfor %}
Output
6 5 4 3 2 1
Loops through a group of strings and outputs them in the order that they were passed as parameters. Each time cycle is called, the next string that was passed as a parameter is output.
cycle must be used within a for loop block.
Input
{% cycle 'one', 'two', 'three' %} {% cycle 'one', 'two', 'three' %} {% cycle 'one', 'two', 'three' %} {% cycle 'one', 'two', 'three' %}
Output
one two three one
Uses for cycle include:
cycle accepts a parameter called cycle group in cases where you need multiple cycle blocks in one template. If no name is supplied for the cycle group, then it is assumed that multiple calls with the same parameters are one group.
Generates an HTML table. Must be wrapped in opening <table> and closing </table> HTML tags.
Input
<table> {% tablerow product in collection.products %} {{ product.title }} {% endtablerow %} </table>
Output
<table> <tr class="row1"> <td class="col1"> Cool Shirt </td> <td class="col2"> Alien Poster </td> <td class="col3"> Batman Poster </td> <td class="col4"> Bullseye Shirt </td> <td class="col5"> Another Classic Vinyl </td> <td class="col6"> Awesome Jeans </td> </tr> </table>
Defines how many columns the tables should have.
Input
{% tablerow product in collection.products cols:2 %} {{ product.title }} {% endtablerow %}
Output
<table> <tr class="row1"> <td class="col1"> Cool 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"> Another Classic Vinyl </td> <td class="col2"> Awesome Jeans </td> </tr> </table>
Exits the tablerow after a specific index.
{% tablerow product in collection.products cols:2 limit:3 %} {{ product.title }} {% endtablerow %}
Starts the tablerow after a specific index.
{% tablerow product in collection.products cols:2 offset:3 %} {{ product.title }} {% endtablerow %}
Defines a range of numbers to loop through. The range can be defined by both literal and variable numbers.
<!--variable number example--> {% assign num = 4 %} <table> {% tablerow i in (1..num) %} {{ i }} {% endtablerow %} </table> <!--literal number example--> <table> {% tablerow i in (3..5) %} {{ i }} {% endtablerow %} </table>
© 2005, 2006 Tobias Luetke
Licensed under the MIT License.
https://shopify.github.io/liquid/tags/iteration/