2017-04-02 77 views
0

部分所以目前的Shopify實施部分留下了許多不足之處。大部分功能都歸入主頁。Shopify Liquid有條件地包含

我試圖在一定程度上避開它,但基本上將所有部分的功能(通常會拆分爲多個部分)分成一個部分文件,然後爲商店中的每個產品複製它,重用每個產品的句柄作爲部分名稱。

例如爲: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替換爲include,並且路由系統完美地執行。

然而,部分?

Liquid syntax error: Error in tag 'section' - Valid syntax: section '[type]'

有沒有辦法解決這個問題?章節名稱是否必須明確說明?

+0

我不能指導你如何製作動態部分,但你可以參考這裏 - https://help.shopify.com/themes/development/theme-editor/sections#static-and-dynamic-部分 – HymnZ

+0

動態部分是完美的,但問題在於:「部分可以從主題編輯器動態添加到主題的主頁。」他們只能在主頁上使用。在其他地方,你必須轉向靜態部分,這些部分的內容在它們所包含的每個頁面上都是相同的。 – Leland

回答

0

這是不可能的。這是故意不可能的。請嘗試使用該部分來動態包含片段。

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