コレクション一覧ページで表示されるコレクションの一部をコレクション一覧ページで非表示にしたい

現在サイトを構築中なのですが、サイトには複数のブランドがありコレクション機能を利用しております。

ブランド以外もコレクション機能を利用(RANKINGなど)しており、コレクションの一覧ページに遷移するとRANKINGなども表示されてしまいます。

コレクション一覧ページにRANKINGなどを非表示にさせたいのですが何か解決策はありますでしょうか。

現状はDebutとDawnで作業を進めております。

いくつか考えられますが、多少弊害もあるものの試したらできました方法を以下記載します。

Dawnテーマを使用し、管理画面内での操作を前提とします。

試していませんがDebutでも概ね同様にできるかと思います。

  1. 「コードを編集」で編集画面に移動
  2. 「新しいtemplateを追加する」で「テンプレートタイプ」は「JSON」を選び、「新しいテンプレートを作成する」は「collection」を選び、「ファイル名」は「show」と入力
  3. collection.jsonの内容をそのまま新規作成したcollection.show.jsonにコピーして保存
  4. main-list-collections.liquidの7行目あたり(collectionsオブジェクトが登場するより前の位置)に行を追加し後述するコードを記述
  5. コレクション一覧ページで表示させたいコレクションの全てで、「テーマテンプレート」に「show」を選ぶ

記述するコードは以下の通りです。

assign collections = collections | where: 'template_suffix', 'show'

上記で「テンプレートにshowが選ばれているcollectionのみ」のオブジェクトを作ることがで、必要なコレクションだけが表示されるはずです。

基本的にデフォルトのテンプレートのみを使用している場合には、逆に表示したくないcollectionにだけテンプレートを適用して以下のように記述することでも対応可能でした。

assign collections = collections | where: 'template_suffix', ''

上記で「テンプレートに何も選ばれていないcollectionのみ」となります。

他にもあるかもしれませんが、考えられる問題点は以下の通りです。

  • テーマのカスタマイズでなんらかの編集を行う場合、デフォルトのテンプレートと同様の編集をshowテンプレートでも行わなければならない

以上ですが他にもっと良い方法があるとは思いますので、他の方の回答を待たれることもお勧めします。

回答ありがとうございます。

内容についても理解できました。

一度試してみたいと思います。

運用面で弊害もありそうですね。

1 Like