Liquid - 如果包含语句在 for 循环中不起作用

Liquid - if contains statement not working in for loop

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

{% 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 是 "dodge" 如果我打印我的 {{ canonical_url }} 我会得到 https://localhost:3000/collections/all/dodge 所以我的条件应该评估为 truthy 并打印单词 'active'.

如果我将我的语句修改为 {% if canonical_url contains 'dodge' %} 它工作正常但我需要它是动态的。有什么建议吗?

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

首先,您必须将标签句柄的值分配给 shopify liquid 变量,然后您才能在条件中使用变量,然后每件事都会正常且动态地工作。谢谢!!