如何使用Liquid拉取全部产品URL,解决仅显示前50条问题
你遇到的50个产品上限问题是Shopify Liquid语法的默认限制导致的,collections.all.products 默认单次查询最多返回50个产品,无需调整逻辑,只需增加分页控制即可解决。
解决方案
方案一:店铺产品总数≤250个时使用
直接通过paginate标签调整单页查询上限,修改后代码如下:
{% paginate collections.all.products by 250 %} <ul> <h3>Products</h3> {% for product in collections.all.products %} <li> <a href="{{ product.url }}">{{ product.title }}</a> </li> {% endfor %} </ul> {% endpaginate %}
方案二:店铺产品总数超过250个时使用
Shopify单页产品查询最大上限为250个,产品总数超过该数值时,需要分页循环遍历所有页码获取全量产品,代码如下:
<ul> <h3>Products</h3> {% assign product_total = collections.all.products_count %} {% assign page_count = product_total | divided_by: 250 | ceil %} {% for page_num in (1..page_count) %} {% paginate collections.all.products by 250 %} {% for product in collections.all.products %} <li> <a href="{{ product.url }}">{{ product.title }}</a> </li> {% endfor %} {% endpaginate %} {% endfor %} </ul>
注意事项
- 全量产品遍历会增加页面加载耗时,不建议放在首页、产品列表页等核心访问页面使用,避免影响用户体验。
- 若需导出全量产品数据,优先选择Shopify后台的产品导出功能,性能远高于前端Liquid遍历。
内容的提问来源于stack exchange,提问作者William Hamal
相关产品推荐
相关产品推荐

