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

Shopify Liquid中如何合并两个UNLESS条件避免重复初始化JQuery

结论

你第一种单unless的写法完全可用,不需要使用后面冗余的嵌套写法。

逻辑优先级验证

Liquid中的逻辑运算符优先级和绝大多数开发语言一致:and的优先级高于or,因此你写的代码:

{% unless template contains 'cart' or template contains 'product' and product.variants.size > 1 %}
  {{ 'jquery-2.2.3.min.js' | asset_url | script_tag }}
{% endunless %}

会被自动解析为等价逻辑:除非(是购物车模板 或者(是产品模板且产品变体数量大于1)),否则加载jQuery,完全匹配你的需求:只有既不是购物车模板,也不是多变体产品模板的时候才初始化jQuery,不会出现重复加载的问题。

第二种写法的问题

你提供的第二种嵌套写法完全没必要,甚至会违背你的需求:两段完全相同的嵌套逻辑会导致满足加载条件时,jQuery被重复加载两次。

可选优化(提升可读性)

如果担心后续维护的同事不了解运算符优先级,你可以手动添加括号明确逻辑分组,效果和原有写法完全一致:

{% unless template contains 'cart' or (template contains 'product' and product.variants.size > 1) %}
  {{ 'jquery-2.2.3.min.js' | asset_url | script_tag }}
{% endunless %}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:36:04