テーマをカスタマイズしてTOPページに全商品リストを表示させたのですが、テーマに実装されているソート機能がTOPページでは機能しません。
コレクションページでは問題なく動作しますので、下記のcollection-sorting.liquidをカスタマイズしないといけないと思われるのですが、
どこを編集すればいいか分かりません。
分かる方がいましたら、ご教示いただけますと幸いです。
{% assign sort_by = collection.sort_by | default: collection.default_sort_by %}
{{ 'collections.sorting.title' | t }}
ソート機能の読み込み側のソースは以下のようになっており、TOPページ、collectionページともに違いはありません。
{% if collection.description != blank %}
{{ collection.title }}
{{ collection.description }}
{% include 'collection-sorting' %}
{% include 'toggle-filters' %}
{% else %}
{{ collection.title }}
{% include 'collection-sorting' %}
{% include 'toggle-filters' %}
{% endif %}
おそらくですが、最後のJQueryの関数に渡しているソートのキーがTOPだと渡せていないので、常にデフォルトのソート順になっているのではと思います。
JQueryの関数に、alert やconsole.logを入れて、関数呼び出しをでバックしてみてはどうでしょうか?
コメントいただきありがとうございます。
いろいろ試してみましたが、解決できませんでした。
「常にデフォルトのソート順になっているのではと思います。」
というより、トップだとプルダウンにリストが表示されないので、
そもそもデータを渡せていないようです。
コレクションページだと、今選んでいるコレクションが、 {{ collection }} オブジェクトに挿入されますが、TOPページだとそれがないので、データが空なのではと思います。
/collection/all のページのコードを参考にしてみてください。
TOPでコレクション未選択でコレクションの商品を表示するのは、 {{ collections[1].product }} のような感じで、まずどのコレクションを使うか指定する必要があると思います。
コレクション横断にする場合はこれをcollectionの数分回します。 ストアのコレクションの数は、shop.collections_count で取れると思います。
https://shopify.dev/docs/themes/liquid/reference/objects/shop#shop-collections_count