Liquidにforループがある場合(Jekyllを使用)、偶数(または奇数)のアイテムのみをターゲットにするにはどうすればよいですか?私が試してみました:
{% for item in site.posts %}
{% if forloop.index % 2 == 1 %}
しかし、それはうまくいかないようです。私も試しました:
(forloop.index % 2) == 1
そして:
forloop.index - (forloop.index / 2 * 2) == 1
これにはサイクルタグを使いたくなると思います。例えば:
{% for post in site.categories.articles %}
<article class="{% cycle 'odd', 'even' %}"></article>
{% endfor %}
サイクルごとに異なるHTMLマークアップが必要な場合:
{% for item in site.posts %}
{% capture thecycle %}{% cycle 'odd', 'even' %}{% endcapture %}
{% if thecycle == 'odd' %}
<div>echo something</div>
{% endif %}
{% endfor %}
詳細については Liquid for Designers を参照してください。この例は特に役に立ちません。この Shopifyサポートスレッド も役立つはずです。
ShopifyサポートスレッドAles Landeの回答 が言うこととは対照的に、isがmodulo
Liquidの関数- modulo
フィルター の形式。
これで、次のことができます。
{% for item in site.posts %}
{% assign mod = forloop.index | modulo: 2 %}
{% if mod == 0 %}
<!-- even -->
{% else %}
<!-- odd -->
{% endif %}
{% endfor %}