Shopify 主题与 Liquid

Shopify request.page_type 判断页面失效

现象#

在 theme.liquid 里用 request.page_type 判断商品页来加载脚本,结果商品页没加载,首页反而加载了;直接输出该值为空白。

原因#

  • page_type 是固定枚举,取值为 index、product、collection、page、cart 等,不是模板文件名
  • 自定义模板 product.custom 仍然返回 product,用它区分不了 suffix
  • section 的 schema 里读不到 request,只有模板和 layout 的 Liquid 能取
  • 属性名大小写写错,例如写成 request.pageType,输出自然是空

处理步骤#

  1. 在 layout 里临时输出 {{ request.page_type | json }},确认实际取值
  2. 需要区分自定义模板时改用 {{ template.suffix }}
  3. 列表页判断写 request.page_type == 'collection',与商品页分开
  4. 条件补上 {% else %} 分支,未知类型时也有兜底逻辑
  5. 在编辑器里切换不同模板预览,逐页确认条件命中情况

验收标准#

商品页源码只出现商品相关脚本,首页与集合页不加载;request.page_type 输出为预期的英文枚举值。

本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。