Shopify 集合页 sort_by 排序不生效怎么修
现象#
集合页加了 sort 过滤器,前台顺序没变;从右上角下拉框切到「价格从低到高」时列表也纹丝不动,URL 里只有 page 参数。
原因#
- 排序应由 collection.sort_by 驱动,对已返回的数组再做 sort 不会改变服务端分页顺序
- 下拉框只改了前端显示,没有把 sort_by 提交到 URL,请求仍是默认排序
- 分页与排序同时存在时,主题只保留了 page 参数,sort_by 在翻页时被丢掉
- Section Rendering API 请求没有带 sort_by,返回的是默认排序结果
处理步骤#
- 读取当前排序:
{% assign current = collection.sort_by | default: collection.default_sort_by %} - 用
collection.sort_options生成下拉框,选项值作为 sort_by 参数提交 - 直接改地址验证:在集合 URL 后加
?sort_by=price-ascending - 分页链接里保留 sort_by,避免翻页后回到默认顺序
- 调用 Section Rendering API 时把 sort_by 一起带上
验收标准#
切换下拉框后 URL 出现 sort_by 参数,列表首件商品价格符合所选顺序;翻到第 2 页顺序仍然保持。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。