gutenbergdocs/reference-guides/data/data-core-edit-widgets.md
2025-10-22 01:33:45 +08:00

362 lines
7.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 编辑小工具
命名空间:`core/edit-widgets`
## 选择器
<!-- START TOKEN(Autogenerated selectors|../../../packages/edit-widgets/src/store/selectors.js) -->
### 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 ? (
<p>{ __( '小工具保存已被锁定' ) }</p>
) : (
<p>{ __( '小工具保存未被锁定' ) }</p>
);
};
```
_参数_
- _state_ `Object`: 全局应用状态。
_返回值_
- `boolean`: 是否被锁定。
<!-- END TOKEN(Autogenerated selectors|../../../packages/edit-widgets/src/store/selectors.js) -->
## 操作
<!-- START TOKEN(Autogenerated actions|../../../packages/edit-widgets/src/store/actions.js) -->
### closeGeneralSidebar
返回表示用户关闭侧边栏的操作对象。
_返回值_
- `Object`: 操作创建器。
### lockWidgetSaving
返回用于表示小工具保存被锁定的操作对象。
_用法_
```js
import { store as widgetStore } from '@wordpress/edit-widgets';
import { useDispatch } from '@wordpress/data';
const ExampleComponent = () => {
const { lockWidgetSaving } = useDispatch( widgetStore );
return (
<Button onClick={ () => lockWidgetSaving( 'lockName' ) }>
{ __( '锁定小工具保存' ) }
</Button>
);
};
```
_参数_
- _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 (
<Button onClick={ () => unlockWidgetSaving( 'lockName' ) }>
{ __( '解锁小工具保存' ) }
</Button>
);
};
```
_参数_
- _lockName_ `string`: 锁名称。
_返回值_
- `Object`: 操作对象。
<!-- END TOKEN(Autogenerated actions|../../../packages/edit-widgets/src/store/actions.js) -->