我想包括在一个模板,但只有在片段文件中存在的一个片段。 有没有什么办法可以做到这一点?
现在,我只是使用:
{% include 'snippetName' %}
但是,这将引发错误:
Liquid error: Could not find asset snippets/snippetName.liquid
我需要这样一个功能的原因是因为我有一个后台进程,后来增加了片段。
我想包括在一个模板,但只有在片段文件中存在的一个片段。 有没有什么办法可以做到这一点?
现在,我只是使用:
{% include 'snippetName' %}
但是,这将引发错误:
Liquid error: Could not find asset snippets/snippetName.liquid
我需要这样一个功能的原因是因为我有一个后台进程,后来增加了片段。
有这个问题我自己。 这是我的解决方案:
{% capture the_snippet_content %}{% include the_snippet %}{% endcapture %}
{% unless the_snippet_content contains "Liquid error" %}
{% include reviews_snippet %}
{% endunless %}
基本上捕捉片段的内容作为一个变量。 如果没有片断Shopify生成错误:
液体的错误:找不到资产片段/卡罗琳·弗林特 - reviews.liquid
因此,请检查它是否生成...如果这样不打印的片断:d
当然,如果你打算你的片段,包括“液体错误”,这将打破,或者如果Shopify曾经更改错误消息。
扩展乔恩的答案;
创建一个名为snippet.liquid
{% capture snippet_content %}{% include snippet %}{% endcapture %}
{% unless snippet_content contains "Liquid error" %}
{{ snippet_content }}
{% endunless %}
然后,只有当它存在的时候,你要包括一个文件
{% include 'snippet' with 'filename_of_include' %}
@vovafeldman不知道为什么你不能有空白段,但没有文件存在。
我能想到的唯一的其他选择是因为你使用的是BG过程中产生的片段(我假设把它上传),你可以随时使用该模板API上传,其中包括在同一时间段的模板的版本。
另外,您也可以创建自己的标签,它确实该文件的存在性的检查,试图处理它。
https://github.com/Shopify/liquid/wiki/Liquid-for-Programmers#create-your-own-tags
使用由Jon上面列出的代码或a.wmly两者还是给了我的错误。 然而,简单地写
{% include 'snippet_name' %}
工作只是罚款。
请注意,这只是工作的位于“片段/”文件夹中的文件。 所以模板,例如,不使用这种方法的工作。