mw_7
1
質問をご覧いただきありがとうございます。
メタフィールドの出力は、「エントリーを追加した順」ではないのでしょうか?
以下の画像のように、「東京、愛知、三重、滋賀」という順に追加したのですが、
↓ のように、東京、滋賀、三重、愛知 という順番に表示されています。
↓ こちらが該当のコードになります。
<p>店舗一覧</p>
<div class="shop_list">
{%- for shopInfo in shop.metaobjects.shopList.values -%}
<div class="shop_info">
<p>店舗名:{{ shopInfo.name }}</p>
<p>店舗住所:{{ shopInfo.address }}</p>
</div>
{%- endfor -%}
</div>
メタフィールドの出力は、「エントリーを追加した順」ではないのでしたら、どのようなルールで表示順が決まってくるのでしょうか?
お手数お掛けしますが、ご存じの方がみえましたら教えていただけますと幸いです。
▽参考にしたサイト
https://commerce-media.info/blogs/ec/meta-object
Qcoltd
2
@mw_7 様
ご質問いただいている、メタオブジェクトの出力順についてですが、
メタオブジェクトのカスタムオブジェクトのハンドルを下記のように英語表示されていませんでしょうか。
東京店:tokyo_store
愛知店:aichi_store
三重店:mie_store
滋賀店:shiga_store
英語表記されていると、ハンドル順「aからz」の順で並んでいる様です。
ハンドルを変更するこができる場合は、
東京店:store_01
愛知店:store_02
三重店:store_03
滋賀店:store_04
のように登録すると、東京、愛知、三重、滋賀の順に表示することが可能です。
もし、ハンドルを変更するとが難し様でしたら、カスタムデータメタオブジェクト定義の店舗一覧に添付画像のような、
並び順用の項目を追加し、並び順の任意にソートする方法もあります。
添付画像のキーsortを赤字部分に指定した下記コードを使い、
店舗一覧
{%- assign sorted_metaobject = shop.metaobjects.shopList.values | sort: "**sort**" -%}
{%- for shopInfo in sorted_metaobject -%}
店舗名:{{ shopInfo.name }}
店舗住所:{{ shopInfo.address }}
{%- endfor -%}
下記順番で並び順を指定した場合、
東京店:3
愛知店:4
三重店:1
滋賀店:2
添付のように順番で並びます。
ご参考まで
(キュー小坂)