Shopify 液体循环 current_tags

Shopify liquid loop current_tags

Shopify 为每个产品系列过滤器创建一个 URL。此 URL https://example.com/collections/default/type_tag+size_tag+width_tag 将过滤名为 default 的集合中的产品,以显示带有 type_tag、size_tag、width_tag.[= 标签的产品23=]

这也创建了一个与上述 URL 具有相同 href 的规范 link。在此示例中,规范的 href 将是 <link rel="canonical" href="https://example.com/collections/default/type_tag+size_tag+width_tag">

我们想针对 SEO 进行优化。对于具有相同过滤器但相反的 URLs(因此产生相同的页面和过滤的内容),我们希望具有相同的规范 href。

例如:这些 URL 会过滤集合中的相同产品 default 并显示具有匹配 href 值的规范。

https://example.com/collections/default/type_tag+size_tag+width_tag https://example.com/collections/default/size_tag+width_tag+type_tag https://example.com/collections/default/type_tag+width_tag+size_tag https://example.com/collections/default/width_tag+type_tag+size_tag

不管上面的 URLs,我们希望规范 href 固定为我们设置的那个。因此,作为示例,我们希望上面的 URLs 具有 https://example.com/collections/default/type_tag+size_tag+width_tag 作为规范。

如您所知,我们的标签分为 type_、size_ 和 width_。

我尝试了几种方法来遍历 {% current_tags %} 对象,以检查 {% current_tags %} 中的任何标签是否包含 type_、size_ 和 width_。以下是我的想法,但显然它不起作用,所以它是垃圾。请有新想法,谢谢!!!

{% if template contains 'collection' and current_tags %}
{% for tag in current_tags %}  
   {% if current_tags contains 'type_' %}
       {% assign type_tag_url = tag  %}
   {% elsif current_tags contains 'size_' %}
       {% assign size_tag_url = tag  %}
   {% elsif current_tags contains 'width_' %}
       {% assign width_tag_url = tag  %}
   {% endif %}
{% endfor %}

<link rel="canonical" href="{{ shop.url }}{{ collection.url }}/{{type_tag_url}}+{{size_tag_url}}+{{width_tag_url}}" />

{% else %}
        <link rel="canonical" href="{{ canonical_url }}">
{% endif %}

current_tags是一个数组。当您使用 contains 运算符在数组中查找项目时,比较基于完全匹​​配进行。所以你不能用它来检查它是否包含包含字符串一部分的标签,比如 type_。检查标签本身,例如:

{% if template contains 'collection' and current_tags %}
  {% for tag in current_tags %}  
    {% if tag contains 'type_' %}
       {% assign type_tag_url = tag  %}
    {% elsif tag contains 'size_' %}
       {% assign size_tag_url = tag  %}
    {% elsif tag contains 'width_' %}
       {% assign width_tag_url = tag  %}
    {% endif %}
  {% endfor %}

  <link rel="canonical" href="{{ shop.url }}{{ collection.url }}/{{type_tag_url}}+{{size_tag_url}}+{{width_tag_url}}" />

{% else %}
  <link rel="canonical" href="{{ canonical_url }}">
{% endif %}