2016-09-25 83 views
1

我試圖根據產品類型在產品頁面上包含一些片段和模板。然而,液體似乎不會有條件地生成片段。在液體中包含條件和模板條件

的我想要實現的一個例子:

{% if product.type == 'shoes' %} 
    {% include 'shoes-template' %} 
{% else %} 
    {% include 'other-template' %} 
{% endif %} 
+0

有什麼。有條件的'包括'工程。我在很多地方使用它。你能分享任何其他相關的代碼嗎? 'shoes-template'和'other-template'也是? – HymnZ

回答

2

如果你有許多產品類型,而不是使用多個ifelse if,你可以使用數組和contains。 您也可以通過執行capture並查找字符串「液體錯誤」來驗證模板是否存在。

{% assign types = "shoes, shirts, pants" | split:", " %} 
{% if types contains product.type %} 
    {% assign snip = product.type | append:"-template" %} 
{% else %} 
    {% assign snip = "other-template" %} 
{% endif %} 

{% capture snip_content %}{% include snip %}{% endcapture %} 
{% unless snip_content contains "Liquid error" %} 
    {% include snip %} 
{% endunless %} 
+0

這是一個關於方式的回合。我不確定它是否有效。同樣''「鞋子」,「襯衫」]不代表液體代碼中的數組。 – HymnZ

+1

我修復了陣列。如果您有多種產品類型,只要您與模板文件名保持一致,這比長時間使用'if,else if,else if,...'效率更高。 – jrbedard