【问题标题】:Shopify Liquid Template - OR operator not workingShopify Liquid 模板 - OR 运算符不工作
【发布时间】:2015-06-22 11:36:02
【问题描述】:

我正在尝试实现一些非常简单的事情。

我的代码如下:

{% if template != 'index' or template != 'page.jump' %}

然后,如果模板不等于这两个页面,我想做点什么。

但是,or 之后似乎没有解释任何内容

这些都单独工作,我不得不求助于嵌套 if 语句,这很讨厌。

template 不能与液体模板中的or 运算符一起使用有什么原因吗?

【问题讨论】:

  • 我知道的老问题,但对于未来的搜索者:问题不在于液体,而在于你的逻辑——如果你想在模板不等于其中任何一个页面时做某事, 那么or 在这里不是正确的运算符(这就是and 在下面起作用的原因)。一旦你点击 `!= 'index' 你评估为真。所以你只是对布尔逻辑有一个基本的误解。

标签: shopify liquid


【解决方案1】:

对于液体,它可以在 2 种条件下完美工作:

  1. 不要使用双引号,只使用单引号
  2. 不要以“不等于”开始陈述!= 您可以使用 != 作为陈述的第二部分

例子:

{% if product.type == 'Bundle' and product.type != 'Dress'%}

【讨论】:

    【解决方案2】:

    试试“和”运算符。

    {% if template != "index" and template != "page.jump" %}
    

    这里似乎有另一种方式: How to use multiple arguments in an if statement with Liquid

    【讨论】:

    • 这非常有效。不知道为什么我没有想到这一点。奇怪的是 or 运算符在这里不起作用。谢谢
    • XOR(异或)仅在其中一个语句为真但不能同时为真时才有效(返回真)。这就是为什么你必须使用“和”。 en.wikipedia.org/wiki/Exclusive_or。请标记为已接受的答案。祝你有美好的一天!
    猜你喜欢
    • 1970-01-01
    • 2020-10-01
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    • 2015-07-08
    • 2023-02-09
    • 2015-01-12
    • 2020-12-15
    相关资源
    最近更新 更多