新功能:块绑定API

WordPress 6.5引入了一种扩展块的新方法,大大减少了在 块是一个抽象术语,用于描述使用WordPress编辑器组合在一起形成网页内容或布局的标记单元。这个想法结合了过去可能通过短代码、自定义HTML实现的概念,并将发现嵌入到一个一致的API和用户体验中。编辑。

现在可以通过新的块绑定美国石油学会美国石油学会 API或应用程序编程接口是一种软件中介,允许程序以有限的、明确定义的方式相互交互和共享数据。

什么是块绑定API?

给定一个核心核心 核心是运行WordPress所需的一组软件。核心开发团队构建WordPress。块,而不是在其中显示用户的内联写入内容,想象一下想要用来自特定源的数据填充该块。例如,post元数据或自定义菲律宾比索菲律宾比索 WordPress主要使用的web脚本语言。WordPress需要PHP 5.6.20或更高版本逻辑。这样做的过程是什么?

屏幕截图显示Gutenberg编辑器中的标题和段落,带有指向段落的红色大箭头。这段话是这样写的:“你如何用其他地方的数据替换这句话?”

这实际上是一个技巧问题:在WordPress的早期版本中,您无法使用古腾堡古腾堡 古腾堡项目是WordPress的新编辑器界面。编辑器改进了创建新内容的过程和体验,使编写丰富内容变得更加简单。它使用“块”来增加丰富性,而不是短代码、自定义HTML等。https://wordpress.org/gutenberg网站/的核心块-相反,它需要创建一个具有特定逻辑的自定义块,以便从有问题的源读取数据。但现在已经不是这样了。

使用块绑定API,现在可以绑定核心块以从不同的源读取无需编写自定义块样板文件-这意味着可以绑定段落以从帖子的元数据读取,或绑定标题以从插件插件 插件是一个包含一组功能的软件,可以添加到WordPress网站。他们可以扩展功能或为WordPress网站添加新功能。WordPress插件是用PHP编程语言编写的,并与WordPres无缝集成。这些可以在WordPress.org插件目录中免费https://wordpress.org/插件/或者可以是第三方基于成本的插件的PHP逻辑,无需处理反应反应 React是一个JavaScript库,它使推理、构造和维护无状态和有状态用户界面变得容易。https://reactjs.org/、块注册,以及为要读取的每个新源从头开始编写自定义块的其他详细信息。

WordPress 6.5中块绑定API的首次发布是简化扩展编辑器和扩展块功能过程的一大步。在幕后,API已经支持了WordPress 6.5中附带的一个展示功能:将核心块连接到post元数据中的自定义字段。

使用相同的功能,作为一个高级用例,还可以定义并从自定义源读取块——下面简要介绍。

注:有关创建和使用块绑定的详细演练,请参阅本简介开发说明开发说明 WordPress Core中的每个重要更改都记录在开发人员备注中(通常称为开发备注)。好的开发注释通常包括对更改的描述、导致此更改的决策,以及对开发人员应该如何处理此更改的描述。在WordPress发布周期的测试阶段,开发人员的笔记会发布在Make/Core博客上。当插件/主题作者和WordPress开发人员需要了解这些更改时,发布开发注释尤其重要。通常,所有开发注释都在候选发布阶段开始时编译到Field Guide中。,请参阅块绑定简介教程来自WordPress开发人员博客博客 (与网络、站点相比)

块绑定是如何工作的?

概述

在深入了解块绑定可以通过自定义源启用的丰富功能之前,本节将首先回顾API的一般工作方式,然后详细介绍如何将核心块绑定到post元数据中的自定义字段。

下表显示了可以绑定的当前兼容块和属性:

支持的块支持的属性
图像url,alt,标题
段落内容
标题内容
按钮url、text、linkTarget、rel

虽然兼容性列表目前很短,但这已经支持了广泛的用例,并且计划在未来支持其余核心块以及自定义块。

要使用块绑定,可以指定使用块标记从特定的注册源读取这些属性;在前端渲染时,将执行这些源的逻辑。

绑定后,相关属性的编辑将被锁定,并且编辑器中将显示指示器,以指示绑定已创建。

古腾堡编辑截图;一个段落被选中,块工具栏中有图标,并且段落周围有紫色的轮廓,表示块已绑定。

具体来说,下面是如何通过内置的自定义字段支持来利用此功能。

自定义字段

重要的是在块绑定API的第一版本中,没有用户界面用户界面 用户界面用于将属性绑定到自定义字段因此,有必要使用古腾堡的代码编辑器手动添加标记。

将支持的属性绑定到自定义字段自定义字段 自定义字段,也称为post-meta,是WordPress的一个功能。它允许用户在写文章时添加其他信息,例如贡献者的姓名、授权。WordPress将此信息存储为元数据。用户可以通过在他们的WordPress主题中使用模板标签来显示这些元数据。在post元数据中,您可以使用如下标记:

<!-- wp:段落{
“元数据”:{
“绑定”:{
“内容”:{
“source”:“核心/后元”,
“参数”:{
“key”:“book-genre”
}
}
}
}
} -->
<p></p>
<!-- /wp:段落-->

为了实现这一点,您需要通过在主题的函数.php或插件。

寄存器_元数据(
“发布”,
“book-genre”,
阵列(
“show_in_rest”=>真,
“single”=>真,
“type”=>“string”,
“default”=>“default text field”,
)
);

*请注意显示_重置属性必须设置为真的出于安全考虑,目前有计划探索如何在未来删除此要求。

未来来源

支持post元数据只是一个开始,计划是添加更多内置源,如站点、用户和分类学分类学 分类法是一种将事物分组的方法。在WordPress中,一些常见的分类是类别、链接、标记或帖子格式。https://codex.wordpress.org/分类#Default_Taxonomes数据,用于WordPress 6.6。

也就是说,块绑定API已经具有允许注册自定义源的功能,这与内部用于注册核心/后元来源见上文。

注册自定义源

概述

要注册块绑定源,需要使用寄存器块绑定源()函数,具有以下签名:

寄存器块绑定源(
字符串$source_name,
数组$source_properties
);

有两个可用参数:

  • $资源名称:自定义绑定源的唯一名称,格式为名称空间/slug。命名空间是必需的。
  • $source_properties(源属性):定义绑定源的属性数组:
    • 标签:表示绑定源的国际化文本字符串。注意:这目前在UI中的任何位置都没有显示。
    • 获取值回调:当块的绑定属性源与$源名称参数。
    • 使用上下文: (可选)使用数组扩展块实例上下文如果需要回调。例如,要使用当前帖子ID,应该将其设置为[“postId”]

当WordPress在解析块时遇到自定义绑定源时,它将运行获取值回调 函数,其签名应如下所示:

项目slug_bindings_callback(
数组$source_args,
WP_Block$块实例,
字符串$attribute_name
);

它最多可以接受三个参数,但除非逻辑需要,否则不需要包括它们:

  • $source_args(源参数):通过传递的参数数组元数据绑定$属性.args属性。
  • $块实例:绑定连接到的块的当前实例WP_块对象。
  • $attribute_name:通过元数据绑定$属性块上的属性键。

使用注册机制

实际上,以下是您可以如何使用上述注册功能为版权信息创建简单绑定:

add_action('init','projectslug_register_block_bindings');

函数projectslug_register_block_bindings(){
register_block_bindings_source('项目代码/版权',数组(
“label”=>__(“版权”,“projectslug”),
“get_value_callback”=>“项目slug_copyright_binding”
) );
}

函数projectslug_copyright_binding(){
return“&copy;”。日期(“Y”);
}

下面是如何将段落绑定到块标记中的版权源,以及它在前端的外观:

<!-- wp:段落{
“元数据”:{
“绑定”:{
“内容”:{
“source”:“projectslug/版权”
}
}
}
} -->
<p>版权块</p>
<!-- /wp:段落-->
标题为“区块绑定版权示例”的帖子截图;在内容中是一个版权符号和2024年。

当然,这是一个简单的示例,您可以使用回调签名中的其他参数来创建更广泛的逻辑。

其他API功能

此外,公共API目前还包含其他一些功能:

  • unregister_block_bindings_source($string源名称):注销源
  • 获取所有注册块绑定源():获取所有注册的源
  • get_block_bindings_source($string源名称):检索已注册的源

此外,请注意,虽然核心源代码在编辑器UI中使用共享API,但请注意,在继续讨论如何围绕此功能标准化UI扩展时,这些编辑器API将暂时保持私有。

这意味着,如果您想实现一个UI来轻松处理自定义字段,那么现在需要自己创建该功能。

进一步学习和后续步骤

有关如何在自己的项目中使用块绑定的更多灵感,请参阅中的注册逻辑块绑定.php和内置核心/后元来源,并查看介绍块绑定教程系列。

考虑到这一点,块绑定才刚刚开始未来计划包括:

  • 添加编辑 元是指组内部工作的术语。对我们来说,这是一个在WordCamp Central和Make WordPress等内部WordPres网站上工作的团队。字段。
  • 添加UI以允许用户通过编辑器添加绑定。
  • 创建新的内置源:站点数据、帖子数据和分类数据。
  • 添加对更多核心块的支持。
  • 添加开发人员扩展编辑器UI的功能。

一如既往,我们非常欢迎您的反馈,我们邀请您在以下方面分享您的想法和使用案例github、这篇文章或WordPress松弛(Slack)松弛(Slack) Slack是一个协作群聊平台https://slack.com/WordPress社区在https://make.wordpress.org/chat/帮助形成块绑定API的开发。

非常感谢@绿沙迪为本文提供代码片段和初步想法,以及@桑托斯吉尔拉莫特、和@恰普拉为他们提供反馈。

#6-5,#开发说明,#开发注释-6-5