用于扩展编辑器以支持区块目录功能,从而搜索和安装区块的软件包。
此软件包仅设计用于 WordPress 核心。你可以自由地在自己的项目中使用它,但请注意,它可能永远不会得到完整的文档说明。
安装
安装模块
npm install @wordpress/block-directory --save
此软件包假设你的代码将在 ES2015+ 环境中运行。如果你使用的环境对该类语言特性和 API 的支持有限或完全不支持,则应在代码中包含 @wordpress/babel-preset-default 随附的 polyfill。
用法
此软件包构建一个独立的 JS 文件。当在带有区块编辑器的页面上加载时,它会扩展区块插入器,以便从 WordPress.org 搜索区块。
为此,它使用了 __unstableInserterMenuExtension,这是一个挂钩到区块类型列表中的 slot-fill 区域。当用户进行搜索且当前没有已安装的匹配结果时,它会向 WordPress.org 发送请求以获取匹配的区块。这些区块会列出供用户通过一键流程进行安装,该流程安装、激活并将区块注入帖子中。当帖子保存时,如果该区块未被使用,它将静默卸载以避免杂乱。
另请参阅用于搜索 WordPress.org 的 API 端点:/wp/v2/block-directory/search,以及安装和激活插件的端点:/wp/v2/plugins/。
Actions
以下一组调度动作创建者可在 wp.data.dispatch( 'core/block-directory' ) 返回的对象上使用:
addInstalledBlockType
返回一个动作对象,用于将区块类型添加到“新安装”跟踪列表中。
参数
- item
Object:包含区块 ID 和名称的区块项。
返回
Object:动作对象。
clearErrorNotice
将特定区块的错误提示清空。
参数
- blockId
string:区块插件的 ID。例如:my-block
返回
Object:动作对象。
fetchDownloadableBlocks
返回一个动作对象,用于表示可下载的区块已被请求并正在加载中。
参数
- filterValue
string:搜索字符串。
返回
Object:动作对象。
installBlockType
触发安装区块插件的动作。
参数
- block
Object:由搜索结果返回的区块项。
返回
boolean:区块是否成功安装并加载。
receiveDownloadableBlocks
返回一个动作对象,用于表示可下载的区块已更新。
参数
- downloadableBlocks
Array:可下载的区块。 - filterValue
string:搜索字符串。
返回
Object:动作对象。
removeInstalledBlockType
返回一个动作对象,用于从“新安装”跟踪列表中移除区块类型。
参数
- item
string:包含区块 ID 和名称的区块项。
返回
Object:动作对象。
setErrorNotice
设置要在给定区块上向用户显示的错误提示。
参数
- blockId
string:区块插件的 ID。例如:my-block - message
string:提示中显示的消息。 - isFatal
boolean:用户是否可以从此错误中恢复。
返回
Object:动作对象。
setIsInstalling
返回一个动作对象,用于指示安装正在进行中。
参数
- blockId
string: - isInstalling
boolean:
返回
Object:动作对象。
uninstallBlockType
触发卸载区块插件的动作。
参数
- block
Object:区块类型对象。
Selectors
以下选择器可在 wp.data.select( 'core/block-directory' ) 返回的对象上使用:
getDownloadableBlocks
返回可用的未安装区块。
参数
- state
Object:全局应用程序状态。 - filterValue
string:搜索字符串。
返回
Array:可下载的区块。
getErrorNoticeForBlock
返回给定区块的错误提示。
参数
- state
Object:全局应用程序状态。 - blockId
string:区块插件的 ID。例如:my-block
返回
string|boolean:错误文本,如果没有错误则返回 false。
getErrorNotices
返回所有区块错误提示。
参数
- state
Object:全局应用程序状态。
返回
Object:包含错误提示的对象。
getInstalledBlockTypes
返回在本会话期间已在服务器上安装的区块类型。
参数
- state
Object:全局应用程序状态。
返回
Array:区块类型项
getNewBlockTypes
返回已在服务器上安装并在当前帖子中使用的区块类型。
参数
- state
Object:全局应用程序状态。
返回
Array:区块类型项。
getUnusedBlockTypes
返回已在服务器上安装但未在当前帖子中使用的区块类型。
参数
- state
Object:全局应用程序状态。
返回
Array:区块类型项。
isInstalling
如果区块插件安装正在进行中,则返回 true。
参数
- state
Object:全局应用程序状态。 - blockId
string:区块的 ID。
返回
boolean:该区块当前是否正在安装。
isRequestingDownloadableBlocks
如果应用程序正在请求可下载区块,则返回 true。
参数
- state
Object:全局应用程序状态。 - filterValue
string:搜索字符串。
返回
boolean:区块列表的请求是否正在进行中。
为此软件包做贡献
这是 Gutenberg 项目的一部分,是一个独立的软件包。该项目作为 monorepo 组织。它由多个自包含的软件包组成,每个软件包都有特定的用途。此 monorepo 中的软件包发布到 npm,并被 WordPress 以及其他软件项目使用。
要了解有关为此软件包或整个 Gutenberg 做出贡献的更多信息,请阅读项目的主要 贡献者指南。