WordPress Gutenberg主题:结构、层次和定制模板

时间:2021-09-15 作者:eripanci

我开始用古腾堡开发WordPress主题。我以前从未与Gutenberg合作过,但由于对Classic Editor的支持可能会在明年结束,我现在想使用它,因为我不想在明年再次为客户重建同一个站点。我正在使用Sage 10

我知道如何构建块(使用ACF Pro或本机),但让我困惑的是主题结构/模板层次结构。

我已经阅读了这里的所有文档:https://developer.wordpress.org/block-editor/how-to-guides/themes/.

但是,包含文件夹、块模板和块模板部分的结构让我非常困惑。没有PHP,只有HTML文件。我没有看到经典中的任何文件Template Hierarchy.

基本上,我想要实现的是:为帖子、CPT和自定义模板创建模板。我不希望用户编辑块的顺序,我只希望他们编辑内容,仅此而已。我希望内容编辑器选择一个模板,然后显示该模板的块,他可以编辑它们,就像经典的方式一样。

我看到你可以做这样的事情this 您可以在其中注册模板并锁定块列表,但我找不到类似的自定义模板方法。

所以,我的问题是:

有没有办法用注册的块构建自定义模板并锁定它们,这样当编辑器选择该模板时,他只能编辑块的内容?推荐的方式是什么

1 个回复
SO网友:Phil

从技术上讲,现在有两种构建主题的方法。一种是旧的标准方式,其中有PHP模板(遵循传统的模板层次结构)。另一个是block based themes 对所有内容使用块。

我的建议是暂时坚持传统。作为基于块的主题工作的一部分的完整站点编辑仍处于初级阶段,您仍然可以使用古腾堡编辑器和旧的模板方法。我只在工作中这样做。

我通常做的是包括blocks “我的主题”中的文件夹package.json 文件这是我放古腾堡主题的地方。因此,我将有一个子文件夹(在blocks/src/) 对于blocks, plugins, block-styles, 等等,然后我将添加所有必要的JS来制作所有这些块和插件。然后,对于模板,我使用标准.php 模板文件(例如。archive-post_type.php, single.php, 等等)。

注册自定义帖子类型时,可以指定默认的;“模板”;块的数目:

register_post_type(\'post_type_slug\', array(
    // ...
    \'show_in_rest\' => true, // Make sure to include this so it loads the Gutenberg editor
    \'template\' => array(
        array(\'core/heading\', array(
            \'level\' => 2)
        ),
        array(\'core/paragraph\'),
    ),
));
如果需要,也可以锁定模板。看见template_lock 供您选择。

我写了一些其他的答案,比如how to get and set custom post meta using Gutenberg, 和general best practices I use when working with custom post types in Gutenberg. 我建议你也去看看。

相关推荐