REST API和GUTENBERG如何协同工作

自从WordPress REST API首次提出以来,我们已经谈了很多关于它将如何参与wp-admin的未来。Gutenberg是一个新的WordPress UI系统,将用于WordPress 5.0中的新帖子编辑器,这是我们第一个使用REST API在服务器和JavaScript驱动的界面之间传递数据的例子。

一个JavaScript驱动的界面通过REST API或Wp -admin内部的GraphQL与WordPress进行通信,这些内容已被大量讨论和撰写。许多插件已经这样做了。但古腾堡是我们在核心中看到的这种模式最广泛的用途。

本文是Gutenberg如何使用WordPress REST API的高级概述。我将提供指向您可以了解更多有关每个概念的链接。

保存帖子

Gutenberg使用WordPress REST API来创建和更新帖子。REST API使用wp_update_post()来更新帖子,因此您希望触发的所有钩子仍将触发。

关于元变量的文档详细介绍了已经采取的长度,以确保在渲染后编辑器和从旧版本的WordPress中保存数据时,所有相同的钩子都会触发。

帖子的架构

去年我写了一篇文章,介绍如何使用WordPress REST API查询和格式化帖子或其他数据,而无需单独的HTTP请求。使用WordPress编辑帖子时,帖子的JSON将添加为内联JavaScript。如果您查看发生的位置并稍微阅读代码,您将找到函数gutenberg_get_post_to_edit。该函数与我在该文章中介绍的内容非常相似 – 在WordPress REST API定义的模式中创建WordPress帖子的JSON表示。

您不应该访问Gutenberg创建的变量。相反,您可以使用wp.data访问当前帖子 – 处于最新状态。

这里重要的是上下文中的WordPress帖子符合WordPress REST API定义的模式。REST API格式化帖子的方式,就是帖子的样子。

WordPress REST API的第2版表示许多项目,例如帖子标题,帖子摘录和发布内容,其中对象至少有一个索引“已呈现”。呈现为帖子的呈现HTML。

使用Gutenberg,如果当前用户具有edit_posts功能,那么还将有一个“原始”索引,其具有未解析的标记。此信息仅显示给那些可以看到帖子编辑器的人,因为帖子内容可能包含敏感信息。例如,块可以具有基于用户角色显示不同信息的逻辑。此新功能可用于片段缓存或构建替代解析器。

还值得注意的是,REST API路由的端点参数的模式与您在注册Gutenberg块属性时使用的模式交叉。

块中的元数据

您可以通过多种方式存储块属性数据,包括将数据保存为post meta。当您注册使用元存储块属性,则需要指定什么Meta键使用。该密钥应使用register_meta注册。

我最近介绍了使用register_meta以及与使用WordPress REST API使用元数据和其他类型的自定义字段相关的其他主题。一旦元字段和块属性在同一字段中注册,其余部分将自动处理。

WordPress最过时的部分之一就是如何保存元数据。现在手册中有一个非常详细的说明。以前,自定义元变量的开发人员负责在读写时对元数据进行授权,清理和验证。现在,声明性API会导致其余部分在后台发生。这意味着开发人员需要完成更少的重复性工作。在核心处理的这项任务是在一个错误留给安全和隐私问题的领域。

新的可能性

如果您想要了解Gutenberg中的所有新内容,请记住,您对REST API的了解甚至更重要,因为Gutenberg。Gutenberg主要是客户端应用程序。它不需要太多的服务器端代码来与该客户端进行交互,因为REST API已经存在。

如果您想在Gutenberg创建,阅读,更新或删除帖子期间更改数据,请使用您已经了解的REST API。

这也会对您在前端处理数据的方式产生巨大影响。正如我们所见,WordPress现在发布“看起来像”REST API如何表示它我们可以使用相同的数据结构进行界面的前端和管理显示或它显示的信息。或者我们可以在两个地方或部分地方使用相同的代码。升级我们的工具以使用现代工具(包括REST API)会带来许多新的可能性。

说点什么

500