本文讲解如何在 shopify liquid 的 for 循环中,利用 `forloop.index` 动态构建 settings 变量名(如 `image-menu1`、`image-menu2`),并通过字符串
拼接与变量间接引用实现灵活渲染。
在 Shopify 主题开发中,常需为每个区块(block)配置多张菜单图(如 image-menu1、image-menu2 等)。若直接硬编码 block.settings.image-menu1,则无法适配不同索引的字段;而 Liquid 不支持原生的动态变量名语法(如 block.settings["image-menu" | append: forloop.index]),因此需借助变量赋值 + 字符串拼接 + 间接访问技巧来实现。
核心思路是:
✅ 正确写法如下:
{% for block in section.blocks %}
{% assign index = forloop.index | append: "" %}
{% assign field_name = "image-menu" | append: index %}
@@##@@
{{ block.settings.title }}
{% endfor %}⚠️ 注意事项:
{
"type": "image_picker",
"id": "image-menu1",
"label": "主菜单图 1"
}{% if block.settings[field_name] %}
@@##@@
{% else %}
@@##@@
{% endif %}通过该方法,你可轻松扩展至 image-menu3、image-menu4……无需修改模板逻辑,仅需在 schema 中新增设置项即可,大幅提升主题的可维护性与复用性。