用于扩展编辑器以支持区块目录功能,从而搜索和安装区块的软件包。

此软件包仅设计用于 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 做出贡献的更多信息,请阅读项目的主要 贡献者指南。