Shopify集合模板page URL参数失效 分页始终显示第一页问题求助
Shopify集合列表模板分页不生效解决方案
问题根因
你直接调用section.settings.collection.all_products时,Shopify默认只会返回该集合的前50个商品,不会自动响应URL的page查询参数,这和current_page变量是否正常无关,属于all_products属性的固有特性。
解决方法
你不需要手动解析URL参数,直接用Liquid原生的paginate标签对集合商品做分页处理即可,操作步骤如下:
- 首先通过配置的集合句柄拿到目标集合对象,不要直接用
all_products属性 - 用
paginate标签包裹原有的商品遍历逻辑,按你配置的products_per_page参数分页,Liquid会自动读取URL中的page参数返回对应页的商品 - 原有分页链接渲染逻辑不需要修改
参考代码示例:
{% comment %} 获取配置指定的集合 {% endcomment %} {% assign target_collection = collections[section.settings.collection] %} {% comment %} 按配置的每页商品数分页,自动响应page参数 {% endcomment %} {% paginate target_collection.products by section.settings.products_per_page %} {% comment %} 遍历当前页的商品,替换你原来遍历all_products的逻辑 {% endcomment %} {% for product in paginate.collection.products %} <!-- 原有商品渲染代码保持不变 --> {% endfor %} <!-- 原有分页链接渲染代码保持不变 --> {% endpaginate %}
注意事项
Shopify对collection.all_products的返回上限固定为50个,所有需要分页的场景都要使用paginate标签包裹collection.products实现,不能依赖all_products属性。
内容的提问来源于stack exchange,提问作者Fredy31
相关产品推荐
相关产品推荐

