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

Shopify自定义主题:能否在settings_schema.json中添加blocks?如何操作?

关于Shopify settings_schema.json添加blocks的问题

兄弟,先给你拍板说清楚——settings_schema.json里是不能直接添加"blocks"字段的!这个配置项是Shopify主题sections专属的,全局主题设置的schema规则里根本没这个玩法,你硬加的话系统完全识别不了,等于白忙活。

为啥不行?

简单说,sections的blocks是用来让商家在页面编辑器里灵活添加、删除、排序重复模块的(比如轮播图的每一张图、产品展示的每个模块);而settings_schema.json管的是全局主题设置(比如全站的颜色方案、字体、全局开关这类),它的合法结构只有name、settings、presets这些字段,blocks不在允许的配置范围内。

那想实现类似blocks的重复配置怎么办?

如果你是想在全局设置里实现“可重复添加一组配置项”的效果,可以用settings里的repeater类型,它能达到和blocks类似的“多组重复配置”的目的。举个实际例子,比如你想让商家全局配置多个社交平台链接:

{
  "name": "Social Links",
  "settings": [
    {
      "type": "repeater",
      "id": "social_links",
      "label": "添加社交媒体链接",
      "settings": [
        {
          "type": "select",
          "id": "social_platform",
          "label": "平台",
          "options": [
            {"label": "Facebook", "value": "facebook"},
            {"label": "Instagram", "value": "instagram"},
            {"label": "Twitter", "value": "twitter"}
          ]
        },
        {
          "type": "url",
          "id": "social_url",
          "label": "链接地址"
        }
      ]
    }
  ]
}

在主题模板里调用这些配置的话,用Liquid遍历就行:

{% for link in settings.social_links %}
  <a href="{{ link.social_url }}" target="_blank" rel="noopener noreferrer">
    {% case link.social_platform %}
      {% when 'facebook' %}
        <span class="icon-facebook">Facebook</span>
      {% when 'instagram' %}
        <span class="icon-instagram">Instagram</span>
      {% when 'twitter' %}
        <span class="icon-twitter">Twitter</span>
    {% endcase %}
  </a>
{% endfor %}

最后再唠两句

如果你的需求是在页面特定位置灵活添加模块化内容,那还是得回到sections里用blocks;如果只是全局范围内的可重复配置项,用repeater就完全能满足需求啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:27:03