You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shopify首页无法显示产品标题 Liquid for循环失效问题咨询

问题成因
  • section.settings.featured_collection 未正确赋值:要么是对应section的schema里没有添加id为featured_collection的集合选择器配置,要么是主题编辑器里选完集合没点保存,这个字段为空时collections[空值]会返回null,for循环根本不会触发执行。
  • 目标集合无有效可展示产品:如果选中的集合是空集合,或者集合里的产品都是草稿状态、没勾选「在线商店」销售渠道,Liquid不会返回这些产品数据,循环自然没有输出。另外Liquid默认单次调用集合的products属性最多返回50个产品,但空集合和这个限制无关,不会报错只会静默无输出。
  • 代码位置错误:如果把这段循环写在了section标签外、或者非section类型的模板文件里,section.settings对象本身不存在featured_collection字段,取值为undefined,后续逻辑全部失效。
  • 无容错处理:旧教程的写法没做空值判断,遇到集合被删除、id不匹配的情况,Liquid不会抛出前台可见的错误,直接跳过整个循环块,页面上看不到任何提示。
修复步骤
  • 先检查对应section文件的schema配置,确保底部{% schema %}块内存在对应集合选择器,配置参考:
{% schema %}
{
  "name": "精选产品展示区",
  "settings": [
    {
      "type": "collection",
      "id": "featured_collection",
      "label": "选择要展示的产品集合"
    }
  ]
}
{% endschema %}

保存文件后进入主题自定义页面,找到首页对应的这个模块,手动选中要展示的集合,点击保存配置。

  • 替换原有循环代码,增加判空容错逻辑,修正后的代码如下:
{% assign show_collection = collections[section.settings.featured_collection] %}
{% if show_collection and show_collection.products.size > 0 %}
  <div class="featured-products">
    {% for product in show_collection.products %}
      <div class="product-item">
        {{ product.title }}
      </div>
    {% endfor %}
  </div>
{% else %}
  <p>当前未选择有效集合,或选中集合内无已上架的在售产品</p>
{% endif %}
  • 检查选中集合的后台配置:确认集合内至少有1个状态为「活跃」、且销售渠道勾选了「在线商店」的产品,草稿态、未分配销售渠道的产品不会对前台游客可见。
  • 配置完成后刷新页面验证,如果开了主题缓存或者CDN缓存,先清空缓存再访问,避免加载旧版本的页面代码。

内容的提问来源于stack exchange,提问作者Ashraful Sm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 04:51:25