forloop
The forloop
object contains attributes of its parent for loop.
In this article
forloop.first
Returns true
if it's the first iteration of the for loop. Returns false
if it is not the first iteration.
Input
{% for product in collections.frontpage.products %}
{% if forloop.first == true %}
First time through!
{% else %}
Not the first time.
{% endif %}
{% endfor %}
Output
First time through!
Not the first time.
Not the first time.
Not the first time.
Not the first time.
forloop.index
Returns the current index of the for loop, starting at 1.
Input
{% for product in collections.frontpage.products %}
{{ forloop.index }}
{% else %}
// no products in your frontpage collection
{% endfor %}
Output
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
forloop.index0
Returns the current index of the for loop, starting at 0.
Input
{% for product in collections.frontpage.products %}
{{ forloop.index0 }}
{% endfor %}
Output
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
forloop.last
Returns true
if it's the last iteration of the for loop. Returns false
if it is not the last iteration.
Input
{% for product in collections.frontpage.products %}
{% if forloop.last == true %}
This is the last iteration!
{% else %}
Keep going...
{% endif %}
{% endfor %}
Output
Keep going...
Keep going...
Keep going...
Keep going...
Keep going...
This is the last iteration!
forloop.length
Returns the number of iterations of the loop.
Input
if collections.frontpage.products contains 4 products
{% for product in collections.frontpage.products %}
{% if forloop.first %}
<p>This collection has {{ forloop.length }} products:</p>
{% endif %}
<p>{{ product.title }}</p>
{% endfor %}
Output
This collection has 4 products:
Apple
Orange
Peach
Plum
forloop.rindex
Returns forloop.index in reverse order.
Input
{% for product in collections.frontpage.products %}
{{ forloop.rindex }}
{% endfor %}
Output
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
forloop.rindex0
Returns forloop.index0 in reverse order.
Input
{% for product in collections.frontpage.products %}
{{ forloop.rindex0 }}
{% endfor %}
Output
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0