Shopify液环电流标签
Shopify为每个集合过滤器创建一个URL。此URLShopify液环电流标签,shopify,liquid,shopify-template,Shopify,Liquid,Shopify Template,Shopify为每个集合过滤器创建一个URL。此URLhttps://example.com/collections/default/type_tag+size_tag+width_tag将过滤名为default的集合中的产品,以显示使用type_tag、size_tag、width_tag标记的产品 这还创建了一个与上述URL具有相同href的规范链接。在本例中,规范href是 我们想优化搜索引擎优化。对于具有相同过滤器但反向的URL(因此产生相同的页面和过滤内容),我们希望使用相同的规范hr
https://example.com/collections/default/type_tag+size_tag+width_tag
将过滤名为default
的集合中的产品,以显示使用type_tag、size_tag、width_tag标记的产品
这还创建了一个与上述URL具有相同href
的规范链接。在本例中,规范href是
我们想优化搜索引擎优化。对于具有相同过滤器但反向的URL(因此产生相同的页面和过滤内容),我们希望使用相同的规范href
例如:这些URL将过滤集合默认值上的相同产品,并显示具有匹配href值的规范
https://example.com/collections/default/type_tag+尺寸标签+宽度标签
https://example.com/collections/default/size_tag+宽度标签+类型标签
https://example.com/collections/default/type_tag+宽度标签+尺寸标签
https://example.com/collections/default/width_tag+键入标签+尺寸标签
不管上面的URL是什么,我们都希望将canonical href固定为我们设置的URL。例如,我们希望上面的URL具有https://example.com/collections/default/type_tag+尺寸标签+宽度标签
作为标准标签
正如您所知,我们的标记分为类型、大小和宽度
我尝试了几种方法在{%current\u tags%}
对象上循环,以检查{%current\u tags%}中的任何标记是否包含类型、大小和宽度。下面是我的想法,但显然它不起作用,所以它是垃圾。请提出新的想法,谢谢
{% 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 %}
{%如果模板包含“集合”和当前_标记%}
{当前_标记%中标记的百分比}
{%如果当前的_标记包含“类型”}
{%assign type_tag_url=tag%}
{%els如果当前_标记包含“大小”}
{%assign size\u tag\u url=tag%}
{%els如果当前_标记包含“宽度”}
{%assign width\u tag\u url=tag%}
{%endif%}
{%endfor%}
{%else%}
{%endif%}
当前的标签是一个数组。使用contains
运算符查找数组中的项时,比较基于精确匹配。因此,您不能使用它来检查它是否包含包含字符串一部分的标记,如type\uuu
。检查标签本身,例如:
{% 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 %}
{%如果模板包含“集合”和当前_标记%}
{当前_标记%中标记的百分比}
{%如果标记包含“类型”}
{%assign type_tag_url=tag%}
{%elsif标记包含“大小”}
{%assign size\u tag\u url=tag%}
{%elsif标记包含“宽度”}
{%assign width\u tag\u url=tag%}
{%endif%}
{%endfor%}
{%else%}
{%endif%}
感谢您的关注@Vladimir。我以前试过,刚才也试过你的,但都不行。返回的规范是,我刚刚测试了它,它按预期工作。我打开了/collections/test/size\u m+type\u t恤+width\u 45cm
路径,下面是规范URL的样子:/collections/test/type\u t恤+size\u m+width\u 45cm
我一辈子都搞不明白为什么我的返回/collections/default/++
。在theme.liquid的
标记中,我有{%render'规范“%}
。我的canonicals代码位于名为canonicals.liquid
的代码段文件中。无论如何,我会接受这个答案。谢谢,我刚刚使用snippet和render
操作符对它进行了测试,得到了工作结果。真奇怪。是否有可用于测试的公共URL?请检查此链接以预览我们的测试站点。谢谢