Shopify Liquid有条件地包括部分

时间:2017-04-02 07:59:09

标签: include shopify liquid code-snippets

所以目前Shopify的各部分实现还有很多不足之处。大多数功能都降级到主页。

我试图在某种程度上绕过它,但基本上将所有部分功能(通常会分成多个部分)放入一个部分文件中,然后复制它对于商店中的每个产品,重复使用每个产品的句柄作为部分名称。

例如:example-product-handle - > sections/example-product-handle.liquid

我的想法是在主product.liquid文件中创建一个简单的路由系统,如果存在一个与句柄匹配的部分,它将有条件地包含一个部分。这SO answer让我的创意变得流畅。

理想的结果看起来像......

{% assign current_page = product.handle %}
{% capture snippet_exists %}{% section current_page %}{% endcapture %}
{% unless snippet_exists contains "Liquid error" %}
    {% section current_page %}
{% endunless %}

这对于片段来说非常精彩 section,路由系统运行良好。

但是有部分?

  

液体语法错误:标记'部分中的错误' - 有效语法:section' [type]'

有没有办法解决这个问题?是否必须明确说明部分名称?

1 个答案:

答案 0 :(得分:2)

这是不可能的。这是故意不可能的。请尝试使用该部分动态包含代码段。

{% for block in section.blocks %}
  {% case block.type %}
  {% when 'layout1' %}
    {% include 'layout1' %}
{% endfor %}