メタフィールド 出力の並び順を変えたい。

satc3
新規メンバー
2 0 0

お世話になります。

メタフィールドの出力される並び順についてご質問です。

 

同じネームスペースに属するキーと値を出力したのですが、出力される並び順を変える方法がわかりません。

Shopify純正のメタフィールド で作成してます。

 

{% assign details = product.metafields.details %}

<dl>
  {% for detail in details %}
  <dt>{{ detail | first | upcase }} : </dt>
  <dd>{{ detail | last }}</dd>
  {% endfor %}
</dl>

 

 

メタフィールド は同じネームスペース『details』で各キーは『material』と『lining』で作成しておりまして、

上記コードで出力すると

LINING : 100% POLYESTER

MATERIAL : HORSE LEATHER

の順番で出力されます。

ですが、やりたい事は

MATERIAL : HORSE LEATHER

LINING : 100% POLYESTER

の順番にしたいのですが、いろいろ検索したのですが方法がわかりませんでした。

どうやらアルファベット順に出力されるのかとは思っているのですが、、、

 

カスタムフィールドで出力したものは順番を変えることができないのでしょうか?

 

何か良い方法がございましたら、ご教示いただけますと幸いです。

何卒宜しくお願い致します。

 

0 件の「いいね!」
Jizo_Inagaki
航海者
422 154 430

試していないので動くかわかりませんが、sort filterが使えるかもしれません。

https://shopify.dev/api/liquid/filters/array-filters#sort

 

ただ、ソートを使うのではなく最初からキーを指定して出力した方が良いように思います。

<dl>
  <dt>{{ product.metafields.details.material }} : </dt>
  <dd>{{ product.metafields.details.lining }}</dd>
</dl>

 

Jizo_Inagaki | フリーランスのwebデザイナー
- テーマのカスタム承れます。
- 記載した回答で解決できましたらベストソリューションの承認をお願いします。
0 件の「いいね!」
satc3
新規メンバー
2 0 0

返信遅くなってすいません。

ありがとうございます。

 

> 試していないので動くかわかりませんが、sort filterが使えるかもしれません。

https://shopify.dev/api/liquid/filters/array-filters#sort

 

この方法では出来ませんでした。

 

ただ、ソートを使うのではなく最初からキーを指定して出力した方が良いように思います。

 

こちらの方法ですが、上記以外にも同じネームスペースで複数のキーがあるモノを作成していたので、

何かソートする方法はないかと思ったのですが、今回は諦めます。

 

ありがとうございました。

0 件の「いいね!」