因此,如果产品的标签中包含“相关”字样,我基本上会尝试使用shopify的逻辑来显示图像
(有一个json查询可以获取包含'related-x'的标签,其中x是产品的名称,并使用它来显示相关产品。)
在Json查询之前是一个基本上表示“相关产品”的图像。我想做的是只在存在“相关”标签时显示。
我试过这个:
{% if product.tags contains 'related' %}
<img src="{{ 'complete-this-look.gif' | asset_url }}" alt="" align="left;" style="vertical-align:top; margin-right:8px; padding-top:0px;" width="130" height="175"/>
{% endif %}
哪个不显示任何内容。我也尝试过:
{% for t in product.tags %}
{% if t contains 'related-' %}
<img src="{{ 'complete-this-look.gif' | asset_url }}" alt="" align="left;" style="vertical-align:top; margin-right:8px; padding-top:0px;" width="130" height="175"/>
{% endif %}
{% endfor %}
但是,每次查询返回相关产品时,都会显示图像。
它后面是什么(图像)(查询结果) - 如果没有查询结果,则它什么都不显示。
有什么想法吗?
答案 0 :(得分:6)
您的第一段代码无效的原因是因为contains
正在寻找名为“related”的标记,而不是包含子字符串“related”的标记。
请参阅其中的Shopify Wiki for contains:
它可以检查另一个字符串中是否存在字符串,或者它可以检查简单字符串数组中是否存在字符串。
在您的实例中,contains
正在检查简单字符串数组中的字符串(并且正在查找整个字符串,而不是包含指定字符串作为子字符串的字符串)。
另请参阅Shopify wiki for product.tags:
返回产品标签的列表(由简单字符串表示)。
您可以将contains关键字与简单字符串数组一起使用 您可以将其与产品标签一起使用:
{% if product.tags contains 'custom to order' %}
<!-- Output custom to order form HTML here -->
{% endif %}
因此,Gerard Westerhof建议在上面的评论中使用Join是一个很好的建议。如果您首先加入product.tags
数组,那么contains
将在join
返回的标记字符串中搜索“相关”字符串。
试试这个:
{% if product.tags | join ' ' contains 'related' %}
<img src="{{ 'complete-this-look.gif' | asset_url }}" alt="" align="left;" style="vertical-align:top; margin-right:8px; padding-top:0px;" width="130" height="175"/>
{% endif %}
编辑:
请改为尝试:
{% assign product_tags_string = product.tags | join ' ' %}
{% if product_tags_string contains 'related' %}
<img src="{{ 'complete-this-look.gif' | asset_url }}" alt="" align="left;" style="vertical-align:top; margin-right:8px; padding-top:0px;" width="130" height="175"/>
{% endif %}