2016-09-25 7 views
1

Я пытаюсь включить некоторые фрагменты и шаблоны на странице продукта на основе типа продукта. Тем не менее, жидкие, похоже, не генерируют фрагменты условно.Включая фрагменты и шаблоны с условиями в Liquid

Пример того, что я пытаюсь достичь:

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

Есть что-то. Условные 'include' работают. Я использую его во многих местах. Можете ли вы поделиться любым другим соответствующим кодом? 'shoes-template' и' other-template' также? – HymnZ

ответ

2

Если у вас есть много видов продукции, вместо использования нескольких if и else 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

Это круглый путь. Я не уверен, что он эффективен. Также '[" shoes "," shirts "]' не означает массив в жидком коде. – HymnZ

+1

Я исправил массив. Если у вас много типов продуктов, это более эффективно, чем long 'if, else if, else if, ...', если вы согласны с вашими именами файлов шаблонов. – jrbedard

 Смежные вопросы

  • Нет связанных вопросов^_^