where

指定したプロパティ値を持つオブジェクトだけを含む配列を作成します。既定では、となる値を持ちます。

この例では、商品の一覧があり、キッチン用品を個別に表示したいとします。where を使用すると、"type""kitchen" の商品のみを含む配列を作成できます。

入力

All products:
{% for product in products %}
- {{ product.title }}
{% endfor %}

{% assign kitchen_products = products | where: "type", "kitchen" %}

Kitchen products:
{% for product in kitchen_products %}
- {{ product.title }}
{% endfor %}

出力

All products:
- Vacuum
- Spatula
- Television
- Garlic press

Kitchen products:
- Spatula
- Garlic press

逆に、商品の一覧があり、購入可能な商品だけを表示したいとします。プロパティ名は指定しますが、ターゲット値は指定しない where を使用して、となる "available" 値を持つすべての商品を含めることができます。

入力

All products:
{% for product in products %}
- {{ product.title }}
{% endfor %}

{% assign available_products = products | where: "available" %}

Available products:
{% for product in available_products %}
- {{ product.title }}
{% endfor %}

出力

All products:
- Coffee mug
- Limited edition sneakers
- Boring sneakers

Available products:
- Coffee mug
- Boring sneakers

where フィルターは、first フィルターと組み合わせることで、配列内の 1 つのオブジェクトだけを見つけるためにも使用できます。たとえば、新しい秋の収穫でシャツを見せたいとします。

入力

{% assign new_shirt = products | where: "type", "shirt" | first %}

Featured product: {{ new_shirt.title }}

出力

Featured product: Hawaiian print sweater vest