頻繁に使わないせいか使用方法を忘れやすいのでメモとして。
前提
- Shopifyのmetafiledのcollection_referenceを使用し、collectionに関する値を出力する
例えば以下のような状態を想定してます。
- 商品のmetafiledにcollectionを設定し、該当コレクションのコレクション名を表示させる
サンプルコード
[metaobject定義]
ネーム(type): related_products
フィールド: コレクション (1つのコレクション)
[フィールド]
名前(key): related_collection
上記のようにmetaobjectを定義し、metaobjectの中には複数エントリーがあり、各エントリーにはcollectionが存在する、という前提で記載します。
以下のように記載することでcollectionオブジェクトの中身(サンプルはtitleとimage)を出力できます。
{%- assign entries = shop.metaobjects.related_products.values -%}
<ul>
{% for entry in entries %}
<li>
{{ entry.related_collection.value.image | image_url: width: 300 | image_tag: loading: 'lazy' }}<br>
{{ entry.related_collection.value.title }}
</li>
{% endfor %}
</ul>
注意するべきなのは各段階でvaluesとvalueが必要になるという点です。
ここを忘れると値が取れません。
結び
valuesはともかくvalueは忘れやすい印象です。
普段は{{ collection.title }}のように書いているせいかもしれませんが、いざ実行という段で値が取れずに右往左往することはままあります。
0人がこの記事を評価
役に立ったよという方は上の「記事を評価する」ボタンをクリックしてもらえると嬉しいです。
連投防止のためにCookie使用。SNSへの投稿など他サービスとの連動は一切ありません。