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 %}
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 %}