Shopify开发中判断产品标签是否包含指定关键词的方法(Liquid与Twig语法差异解决)
解决产品标签包含判断的模板语法问题
嘿,我来帮你搞定这个问题!你遇到的代码崩溃问题,核心原因是搞混了不同模板引擎的语法规则——你一开始参考了Liquid的文档用了contains关键字,但实际你的项目使用的是Twig模板引擎,两者的字符串包含判断语法完全不同。
先确认你的数据是没问题的:从返回的JSON可以看到,item.metadata['shopify_tags']确实包含独立的outlet标签,所以数据层面不存在问题。
正确的Twig写法
要在Twig里判断字符串是否包含指定内容,需要用in操作符,替换你原来的代码即可正常运行:
{% if "outlet" in item.metadata['shopify_tags'] %} <br>All items are final sale, non-refundable, and not eligible for exchange. {% endif %}
为什么原来的写法会崩溃?
- Liquid模板引擎判断包含关系用的是
contains关键字,比如:{% if string contains 'substring' %} - 但Twig模板引擎对应的语法是
in操作符,也就是{% if 'substring' in string %}
你用了Liquid的语法在Twig环境中执行,自然会触发语法错误导致代码崩溃,换成Twig的in操作符就可以解决这个问题啦。
内容的提问来源于stack exchange,提问作者Jason G
相关产品推荐
相关产品推荐

