Liquid、JavaScriptなどに関する質問
質問をご覧いただきありがとうございます。
メタフィールドの出力は、「エントリーを追加した順」ではないのでしょうか?
以下の画像のように、「東京、愛知、三重、滋賀」という順に追加したのですが、
↓ のように、東京、滋賀、三重、愛知 という順番に表示されています。
↓ こちらが該当のコードになります。
<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>
メタフィールドの出力は、「エントリーを追加した順」ではないのでしたら、どのようなルールで表示順が決まってくるのでしょうか?
お手数お掛けしますが、ご存じの方がみえましたら教えていただけますと幸いです。
▽参考にしたサイト
ご質問いただいている、メタオブジェクトの出力順についてですが、
メタオブジェクトのカスタムオブジェクトのハンドルを下記のように英語表示されていませんでしょうか。
東京店:tokyo_store
愛知店:aichi_store
三重店:mie_store
滋賀店:shiga_store
英語表記されていると、ハンドル順「aからz」の順で並んでいる様です。
ハンドルを変更するこができる場合は、
東京店:store_01
愛知店:store_02
三重店:store_03
滋賀店:store_04
のように登録すると、東京、愛知、三重、滋賀の順に表示することが可能です。
もし、ハンドルを変更するとが難し様でしたら、カスタムデータメタオブジェクト定義の店舗一覧に添付画像のような、
並び順用の項目を追加し、並び順の任意にソートする方法もあります。
添付画像のキーsortを赤字部分に指定した下記コードを使い、
<p>店舗一覧</p>
<div class="shop_list">
{%- assign sorted_metaobject = shop.metaobjects.shopList.values | sort: "sort" -%}
{%- for shopInfo in sorted_metaobject -%}
<div class="shop_info">
<p>店舗名:{{ shopInfo.name }}</p>
<p>店舗住所:{{ shopInfo.address }}</p>
</div>
{%- endfor -%}
</div>
下記順番で並び順を指定した場合、
東京店:3
愛知店:4
三重店:1
滋賀店:2
添付のように順番で並びます。
ご参考まで
(キュー小坂)
いつもShopifyをご利用いただき、ありがとうございます。 Shopifyは、皆様の日本語での利用体験の向上に努めております。さらなる改善のために皆様のご意見をお寄せい...
By JasonH May 9, 2025Shopify アカデミーの学習パスと認定スキルバッジExpanding Your Shopify Business Internationallyを活用して、国際的にビジネ...
By Shopify Feb 7, 2025Shopify アカデミーの学習パスB2B on Shopify:立ち上げとカスタマイズで卸売販売に進出しましょう。これら3つの無料コースは、ShopifyストアでB2B機能...
By Shopify Jan 31, 2025