如何使用REST API独立或作为无头方式创建Gutenberg块?

时间:2020-02-29 作者:Vishal

我想使用REST API创建页面/帖子,但我不知道如何在WordPress中独立使用REST API或以无标题方式创建页面/帖子。

我想用新的古腾堡积木创建这个页面。因此,我也不知道如何用一个页面附加多个Gutenberg块,并以与在WordPress管理面板中创建页面相同的方式构建此页面,因为当我们尝试使用REST API创建页面/帖子时,在管理面板中只会显示一个名为“classic”的块

有谁能帮助我如何在REST API中传递数据,以便它根据我们的要求创建多个块?

1 个回复
SO网友:Jacob Peattie

块编辑器块是通过解析post_content. 块由如下HTML注释分隔:

<!-- wp:image -->
<figure class="wp-block-image"><img src="source.jpg" alt="" /></figure>
<!-- /wp:image -->
块的实际数据存储方式完全取决于块。块可以将其属性作为JSON存储在HTML注释中(由编辑器处理),如下面的示例here:

<!-- wp:latest-posts {"postsToShow":4,"displayPostDate":true} /-->
或者,他们可以通过解析保存的HTML来重建属性。它甚至可以是一个组合。例如,按钮块存储className 属性,但通过解析HTML恢复链接和标签:

<!-- wp:button {"className":"is-style-outline"} -->
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link" href="https://wpthemetestdata.wordpress.com/2018/11/03/block-button/">another button</a></div>
<!-- /wp:button -->
记录了存储块数据的可能方法here, 每个模块的工作方式都不同。

这里的问题是块不是设计成手写的。它们应该用块编辑器创建。用于在中转换HTML的逻辑post_content 返回到块编辑器中的块中仅存在于该块的代码中。因此,要编写可转换为块的HTML,您需要研究用于注册该块的代码,以了解它所需的格式。

如果您有一个非WordPress应用程序需要创建块内容,唯一可靠的方法是使块编辑器适应该应用程序。