本文讲解如何在 shopify liquid 模板中通过 `forloop.index` 动态构建 settings 字段名(如 `image-menu1`、`image-menu2`),
解决无法直接使用 `{{ block.settings.image-menu{{ forloop.index }} }}` 的语法限制。核心方法是利用 `append: ""` 将数字索引转为字符串后拼接字段前缀。
在 Shopify 主题开发中,常需为每个区块(block)配置多张菜单图,例如 image-menu1、image-menu2……此时若想在 forloop 中按序自动读取对应字段,Liquid 不支持直接插值变量名(如 block.settings.image-menu{{ forloop.index }} 是非法语法)。必须通过字符串拼接 + 动态属性访问的方式实现。
✅ 正确做法如下:
{% for block in section.blocks %}
{% assign index = forloop.index | append: "" %}
{% assign field_name = "image-menu" | append: index %}
@@##@@
Item {{ forloop.index }}
{% endfor %}? 关键点说明:
⚠️ 注意事项:
通过该模式,你还能轻松扩展至其他动态字段,例如 title-{{ forloop.index }}、link-{{ forloop.index }} 等,大幅提升模板复用性与可维护性。