FROM CACHE - jp_header
解決済

Debutテーマでコレクションを1ページに全て表示したい

tamari
Shopify Partner
15 0 3

お世話になります。

 

【前提】

・アプリ「EasyLockdown」で、アクセスできる商品を制限している

・コレクションに登録されている商品は80点

 

【問題】

表示制限をかけている商品が空欄状態となり、実際にアクセスできる商品が3点しかなくとも、コレクションページが改ページしてしまいます。

グリッド表示で行が5。列が8で1ページ内に最高40件表示されるようにしていますが、アクセス制御によって商品が見えていないのに、3ページ分のコレクションページが出来上がってしまいます。

1ページ目:商品1つ表示、2ページ目:商品2つ表示、3ページ目:表示なし、というような状態です。

(アクセスさせたい商品は3つだけなので、改ページは不要)

 

【ご相談】

Debutテーマの利用時に、コレクション登録された商品を表示する件数を制限せず、全て1ページ内に全て表示してしまうことは可能でしょうか。

グリッド表示ですと、行が5、列が8で最高40件の表示となると思います。

これを、コレクションへの登録点数が100件ある場合でも、3ページにまたがず、1ページで全て表示を行いたいです。

 

解決可能なアプリ、修正すべき箇所がありましたら、お教えいただけますようお願いいたします。

また、テーマの修正で解決できればと思い「Shopify テーマ」内に投稿させていただきましたが、カテゴリ違いである場合移動いたしますので、ご指摘いただければと思います。

よろしくお願いいたします。

1 件の受理された解決策

Jizo_Inagaki
Shopify Partner
990 373 690

成功

実際に試していないので正常に動作するかはわかりませんが、恐らくcollection.liquidの以下を

{%- assign product_limit = section.settings.grid | times: section.settings.rows -%}

  <ul class="grid grid--uniform grid--view-items">
    {% for product in collection.products limit: product_limit %}

 

以下のようにlimitフィルターを削除すれば制限は解除されると思います。

{%- assign product_limit = section.settings.grid | times: section.settings.rows -%}

  <ul class="grid grid--uniform grid--view-items">
    {% for product in collection.products  %}

 

制限解除をせずにどうにかできないかなと思いましたが、EasyLockdownが行っている制限方法を把握していないため検討していません。
コレクションのメタフィールドに何らかの値を埋め込んでいるのであればそれを利用できるかなとは思いましたが。

 

なお、商品点数の制限は以下の箇所で「行あたりの商品数」と「ページあたりの行数」の掛け算で決定されていると思われます。

{%- assign product_limit = section.settings.grid | times: section.settings.rows -%}

そのため特定のコレクションにだけ制限解除の影響を与えたいという場合には、この辺りの動作を分岐させれば可能だと思われます。

 

もしも動作しない場合は申し訳ありません。

Jizo_Inagaki | フリーランスのwebデザイナー
- テーマのカスタム承れます。
- 記載した回答で解決できましたらベストソリューションの承認をお願いします。
- DMや指名による対応はご依頼として有料でのみ承ります。

元の投稿で解決策を見る

2件の返信2

Jizo_Inagaki
Shopify Partner
990 373 690

成功

実際に試していないので正常に動作するかはわかりませんが、恐らくcollection.liquidの以下を

{%- assign product_limit = section.settings.grid | times: section.settings.rows -%}

  <ul class="grid grid--uniform grid--view-items">
    {% for product in collection.products limit: product_limit %}

 

以下のようにlimitフィルターを削除すれば制限は解除されると思います。

{%- assign product_limit = section.settings.grid | times: section.settings.rows -%}

  <ul class="grid grid--uniform grid--view-items">
    {% for product in collection.products  %}

 

制限解除をせずにどうにかできないかなと思いましたが、EasyLockdownが行っている制限方法を把握していないため検討していません。
コレクションのメタフィールドに何らかの値を埋め込んでいるのであればそれを利用できるかなとは思いましたが。

 

なお、商品点数の制限は以下の箇所で「行あたりの商品数」と「ページあたりの行数」の掛け算で決定されていると思われます。

{%- assign product_limit = section.settings.grid | times: section.settings.rows -%}

そのため特定のコレクションにだけ制限解除の影響を与えたいという場合には、この辺りの動作を分岐させれば可能だと思われます。

 

もしも動作しない場合は申し訳ありません。

Jizo_Inagaki | フリーランスのwebデザイナー
- テーマのカスタム承れます。
- 記載した回答で解決できましたらベストソリューションの承認をお願いします。
- DMや指名による対応はご依頼として有料でのみ承ります。
tamari
Shopify Partner
15 0 3

jizo様

ご回答頂きましてありがとうございます。

回答を頂いた内容通り、collection.liquid内の記述修正を行ってみましたが、望む動作とはなりませんでした。

しかし、「ページネーションの上限を解除しないと表示件数自体の制限を解除しても表示が上手くいかない」というような内容を見つけ、

該当する部分(collection-template.liquid内のページネーション記述)をあわせて修正してみたところ、1ページでの表示が可能となりました。

希望する表示を行うことが出来ました。ありがとうございます!