title: "站点编辑模板" post_status: publish comment_status: open taxonomy: category: - gutenberg-docs post_tag: - Architecture - Explanations - Repos


站点编辑模板

模板与模板部件流程

本文档将解释模板和模板部件在前端如何渲染、在后端如何编辑的内部机制。

存储机制

与常规模板类似,区块模板最初以文件形式存在于主题文件夹中,但主要区别在于用户可以通过站点编辑器的界面直接编辑这些模板。

当用户编辑模板(或模板部件)时,初始的主题模板文件将保持原样,而模板的修改版本会以自定义文章类型 wp_template(模板部件对应 wp_template_part)的形式保存。

这意味着在任何时间点,网站前端渲染都会同时使用主题文件中的模板和经过编辑的 CPT 模板。

同步机制

为了简化从两个不同位置编辑和渲染模板的算法,我们执行了一项称为"模板同步"的操作。

同步操作包括将主题模板复制到 wp_template(及 wp_template_part)自定义模板中,并赋予 auto-draft 状态。当用户编辑这些模板时,状态将更新为 publish

这意味着:

同步机制对两种不同流程至关重要:

切换主题

由于区块主题利用可相互引用且能保存至自定义文章类型的模板,使得混合使用不同主题的模板和模板部件成为可能。例如:

实现这些流程需要精心设计的用户界面和体验。在全站编辑的当前阶段,我们首先禁止这些可能性,并使模板和模板部件特定于主题。

尽管如此,记录模板和模板部件最初来源(基于哪个主题)仍然很重要。我们通过为每个模板和模板部件 CPT 条目保存一个包含主题标识符的 theme 文章元数据来实现这一点。

未来,我们可能会考虑允许用户混合使用具有不同 theme 文章元数据值的模板和模板部件。