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

如何在Liquid的unless语句中匹配多个模板?现有代码仅单模板生效

解决Liquid模板多名称匹配问题

你之前的写法存在逻辑或语法错误,导致只有templatename1生效:

  • unless块里用and是逻辑错误:template == "templatename1" and "templatename2"实际是判断template等于第一个模板并且非空字符串templatename2为真(Liquid里非空字符串默认是true),等价于只判断template == "templatename1",自然templatename2不生效。
  • if块里用逗号分隔条件是语法错误,Liquid不支持这种写法,只会解析第一个条件。

以下是正确的写法:

匹配多个模板(if场景)

方法1:用or连接多个相等判断

适合模板数量较少的场景:

{% if template == "templatename1" or template == "templatename2" %}
  <!-- 匹配到任意一个目标模板时执行的内容 -->
{% endif %}

方法2:数组+contains判断

适合需要匹配多个模板的场景,后续新增模板只需修改数组内容:

{% assign target_templates = "templatename1,templatename2" | split: "," %}
{% if target_templates contains template %}
  <!-- 匹配到任意目标模板时执行的内容 -->
{% endif %}

排除多个模板(unless场景)

方法1:用or连接排除条件

{% unless template == "templatename1" or template == "templatename2" %}
  <!-- 模板既不是templatename1也不是templatename2时执行的内容 -->
{% endunless %}

方法2:数组+contains判断

{% assign exclude_templates = "templatename1,templatename2" | split: "," %}
{% unless exclude_templates contains template %}
  <!-- 模板不在排除列表里时执行的内容 -->
{% endunless %}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 09:35:33