# 编辑小工具 命名空间:`core/edit-widgets` ## 选择器 ### canInsertBlockInWidgetArea 判断是否可以将区块插入到小工具区域。 _参数_ - _state_ `Array`: 小工具区域的打开状态。 - _blockName_ `string`: 要插入的区块名称。 _返回值_ - `boolean`: 如果区块可以插入到小工具区域则返回 true。 ### getEditedWidgetAreas 返回所有已编辑的小工具区域实体记录。 _返回值_ - `Object[]`: 已编辑的小工具区域实体记录列表。 ### getIsWidgetAreaOpen 获取小工具区域是否处于打开状态。 _参数_ - _state_ `Array`: 小工具区域的打开状态。 - _clientId_ `string`: 小工具区域的客户端 ID。 _返回值_ - `boolean`: 如果小工具区域处于打开状态则返回 true。 ### getParentWidgetAreaBlock 根据子级客户端 ID 返回父级小工具区域区块。 _参数_ - _clientId_ `string`: 小工具区域中某个区块的客户端 ID。 _返回值_ - `WPBlock`: 小工具区域区块。 ### getReferenceWidgetBlocks 返回所有表示引用小工具的区块。 _参数_ - _referenceWidgetName_ `string`: 可选参数。如果指定,则只返回具有此名称的引用小工具。 _返回值_ - `Array`: 表示引用小工具的所有区块列表。 ### getWidget 返回特定小工具 ID 的 API 小工具数据。 _参数_ - _id_ `number`: 小工具 ID。 _返回值_ - `Object`: 特定小工具 ID 的 API 小工具数据。 ### getWidgetAreaForWidgetId 返回包含指定 widgetId 所标识区块的小工具区域。 _参数_ - _widgetId_ `string`: 小工具的 ID。 _返回值_ - `Object`: 包含小工具区域的对象。 ### getWidgetAreas 返回所有 API 小工具区域。 _返回值_ - `Object[]`: API 小工具区域列表。 ### getWidgets 返回所有 API 小工具。 _返回值_ - `Object[]`: API 小工具列表。 ### isInserterOpened 判断插入器是否处于打开状态。 _参数_ - _state_ `Object`: 全局应用状态。 _返回值_ - `boolean`: 插入器是否处于打开状态。 ### isListViewOpened 判断列表视图是否处于打开状态。 _参数_ - _state_ `Object`: 全局应用状态。 _返回值_ - `boolean`: 列表视图是否处于打开状态。 ### isSavingWidgetAreas 判断是否有小工具区域正在被保存。 _返回值_ - `boolean`: 如果有小工具区域正在被保存则返回 true,否则返回 false。 ### isWidgetSavingLocked 返回小工具保存是否被锁定。 _用法_ ```jsx import { __ } from '@wordpress/i18n'; import { store as widgetStore } from '@wordpress/edit-widgets'; import { useSelect } from '@wordpress/data'; const ExampleComponent = () => { const isSavingLocked = useSelect( ( select ) => select( widgetStore ).isWidgetSavingLocked(), [] ); return isSavingLocked ? (

{ __( '小工具保存已被锁定' ) }

) : (

{ __( '小工具保存未被锁定' ) }

); }; ``` _参数_ - _state_ `Object`: 全局应用状态。 _返回值_ - `boolean`: 是否被锁定。 ## 操作 ### closeGeneralSidebar 返回表示用户关闭侧边栏的操作对象。 _返回值_ - `Object`: 操作创建器。 ### lockWidgetSaving 返回用于表示小工具保存被锁定的操作对象。 _用法_ ```js import { store as widgetStore } from '@wordpress/edit-widgets'; import { useDispatch } from '@wordpress/data'; const ExampleComponent = () => { const { lockWidgetSaving } = useDispatch( widgetStore ); return ( ); }; ``` _参数_ - _lockName_ `string`: 锁名称。 _返回值_ - `Object`: 操作对象。 ### moveBlockToWidgetArea 处理在小工具区域之间移动区块的操作。 _参数_ - _clientId_ `string`: 要移动区块的客户端 ID。 - _widgetAreaId_ `string`: 要将区块移动到的目标小工具区域 ID。 ### persistStubPost 将指定 ID 的存根文章持久化到核心数据存储中。该文章仅存在于内存中,不应通过 API 保存。 _参数_ - _id_ `string`: 文章 ID。 - _blocks_ `Array`: 文章应包含的区块。 _返回值_ - `Object`: 文章对象。 ### saveEditedWidgetAreas 将已编辑小工具区域中的所有区块转换为小工具,并提交批量请求一次性保存所有内容。 在成功或出错时创建 snackbar 通知。 _返回值_ - `Function`: 操作创建器。 ### saveWidgetArea 将指定 ID 的小工具区域中的所有区块转换为小工具,并提交批量请求一次性保存所有内容。 _参数_ - _widgetAreaId_ `string`: 要处理的小工具区域 ID。 _返回值_ - `Function`: 操作创建器。 ### saveWidgetAreas 将指定小工具区域中的所有区块转换为小工具,并提交批量请求一次性保存所有内容。 _参数_ - _widgetAreas_ `Object[]`: 要保存的小工具区域。 _返回值_ - `Function`: 操作创建器。 ### setIsInserterOpened 返回用于打开/关闭插入器的操作对象。 _参数_ - _value_ `boolean|Object`: 插入器应打开(true)还是关闭(false)。要指定插入点,请使用对象。 - _value.rootClientId_ `string`: 要插入的根客户端 ID。 - _value.insertionIndex_ `number`: 要插入的索引位置。 _返回值_ - `Object`: 操作对象。 ### setIsListViewOpened 返回用于打开/关闭列表视图的操作对象。 _参数_ - _isOpen_ `boolean`: 表示列表视图应打开还是关闭的布尔值。 _返回值_ - `Object`: 操作对象。 ### setIsWidgetAreaOpen 设置小工具区域的打开状态。 _参数_ - _clientId_ `string`: 小工具区域的客户端 ID。 - _isOpen_ `boolean`: 小工具区域是否应打开。 _返回值_ - `Object`: 操作。 ### setWidgetAreasOpenState 设置所有小工具区域的打开状态。 _参数_ - _widgetAreasOpenState_ `Object`: 所有小工具区域的打开状态。 _返回值_ - `Object`: 操作。 ### setWidgetIdForClientId 设置特定 widgetId 对应的客户端 ID。 _参数_ - _clientId_ `number`: 客户端 ID。 - _widgetId_ `number`: 小工具 ID。 _返回值_ - `Object`: 操作。 ### unlockWidgetSaving 返回用于表示小工具保存已解锁的操作对象。 _用法_ ```js import { store as widgetStore } from '@wordpress/edit-widgets'; import { useDispatch } from '@wordpress/data'; const ExampleComponent = () => { const { unlockWidgetSaving } = useDispatch( widgetStore ); return ( ); }; ``` _参数_ - _lockName_ `string`: 锁名称。 _返回值_ - `Object`: 操作对象。