Liquid - if contains 语句在 for 循环中不起作用

Posted

技术标签:

【中文标题】Liquid - if contains 语句在 for 循环中不起作用【英文标题】:Liquid - if contains statement not working in for loop 【发布时间】:2018-11-05 01:30:43 【问题描述】:

我在一个不起作用的循环中有一个非常基本的条件:

% for tag in collections.all.tags % 
     <li class="mb-1 ">
        <a class="text-white" title=" tag " href="#">
             tag | handle 
            % if canonical_url contains tag | handle %
                active
            % endif %
        </a>
     </li>
% endfor %

现在,我的tag | handle 是“躲避”,如果我打印我的 canonical_url ,我会得到https://localhost:3000/collections/all/dodge,所以我的条件应该评估为真并打印“活动”这个词。

如果我将我的声明修改为% if canonical_url contains 'dodge' %,它可以正常工作,但我需要它是动态的。有什么建议吗?

【问题讨论】:

您是否尝试将句柄设置为变量并比较变量而不是句柄?这是一个建议;我不确定这是否可行。 太棒了!效果很好,要正式回答这个问题吗? 当然让我回答一下 【参考方案1】:

将句柄设置为变量,并使用变量而不是句柄进行比较。

【讨论】:

【参考方案2】:

首先,您必须将标签句柄的值分配给 shopify 液体变量,然后您将能够在条件下使用变量,然后一切都会正常工作且动态。谢谢!!

【讨论】:

以上是关于Liquid - if contains 语句在 for 循环中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

html 如何在带有Liquid的if语句中使用多个参数

container和container-fluid的区别

用于 Shopify 主题开发的 LESS CSS 和转义 Liquid 语法

默认函数参数排序

尝试catch with contains for和if语句Java [关闭]

如何避免为不同的字符串编写简单的“if contains”语句的每个变体