forloop

The forloop object contains attributes of its parent for loop.

Did you know?

The forloop object can only be used within for tags.

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

Want to discuss this page?

Visit the Shopify Community