gutenbergdocs/docs/reference-guides/data/data-core-edit-widgets.md
2025-10-22 01:40:18 +08:00

7.1 KiB
Raw Blame History

编辑小工具

命名空间: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

返回小工具保存是否被锁定。

用法

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: 是否被锁定。

操作

closeGeneralSidebar

返回表示用户关闭侧边栏的操作对象。

返回值

  • Object: 操作创建器。

lockWidgetSaving

返回用于表示小工具保存被锁定的操作对象。

用法

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

返回用于表示小工具保存已解锁的操作对象。

用法

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: 操作对象。