如何在不复制元代码的情况下启用五十个不同部分内的块?

How To Enable Block Inside Fifty Different Sections Without Copying Meta Code?

我正在开发一个 Shopify 主题。我现在的结构是(摘录):

片段

custom-message-snippet

栏目

custom-message-section

welcome-page-a-section

welcome-page-b-section

模板

welcome-page-a-template

welcome-page-b-template

...

自定义消息片段使用 custom-message-section 中的设置,即:

a) 消息

b) header 文字

我希望用户能够以不同的方式将 custom-message-snippet 添加到 welcome-page-a 和 welcome-page-b。

我无法在欢迎页面内呈现“custom-message-section”部分,因为这是不可能的(而且解决方法很糟糕)。

有五十个欢迎页面。每个欢迎页面都是完全不同的。

我的问题是:

如何允许用户在所有欢迎页面中使用 custom-message-snippet 而无需将 custom-message-page 设置架构复制并粘贴到每个欢迎页面?

短:你不能。

长篇:使用 storefront 2.0,您将拥有可以手动添加到任何模板的块。

合并 custom-message-sectioncustom-message-snippet

合并welcome-page-\w+-templatewelcome-page-template,你只需要有一个模板和模式集,用户将控制模式selection.

中的部分

模板中,使用模式select page-content;这个,由一堆 if-else /switch 语句定义。

{% section "welcome-page-custom-message-section" %}
{% section "welcome-page-content" %}

welcome-page-custom-message-section

{% render "custom-message-snippet" with "string from welcome-page-section schema " %}

创建复选框 select 显示或不显示自定义消息的架构。