跳转到主要内容

WordPress 核心数据

命名空间:core。

动态生成的选择器

存在一系列用户友好的选择器,它们是对更通用的 getEntityRecord 和 getEntityRecords 的封装,可用于检索各种实体的信息。

getPostType

返回给定文章类型的信息。

用法

import { useSelect } from '@wordpress/data';
import { store as coreDataStore } from '@wordpress/core-data';

const postType = useSelect(
	( select ) => select( coreDataStore ).getPostType( 'post' )

	// 等价于:select( coreDataStore ).getEntityRecord( 'root', 'postType', 'post' )
);

参数

  • postType string

返回值

  • EntityRecord | undefined: 记录。

getPostTypes

返回文章类型的信息。

用法

import { useSelect } from '@wordpress/data';
import { store as coreDataStore } from '@wordpress/core-data';

const postTypes = useSelect( ( select ) => {
	return select( coreDataStore ).getPostTypes( { per_page: 4 } );

	// 等价于:
	// select( coreDataStore ).getEntityRecords( 'root', 'postType', { per_page: 4 } );
} );

参数

  • query GetRecordsHttpQuery: 可选的查询条件。如果请求特定字段,字段必须始终包含 ID。关于有效的查询参数,请参阅 REST API 手册中的 参考 并选择实体种类。然后查看“列出 [实体种类]”可用的参数。

返回值

  • EntityRecord[] | null: 记录。

getTaxonomy

Returns information for a given taxonomy.

Usage

import { useSelect } from '@wordpress/data';
import { store as coreDataStore } from '@wordpress/core-data';

const taxonomy = useSelect( ( select ) => {
	return select( coreDataStore ).getTaxonomy( 'category' );

	// Equivalent to:
	// select( coreDataStore ).getEntityRecord( 'root', 'taxonomy', 'category' );
} );

Parameters

  • taxonomy string

Returns

  • EntityRecord | undefined: Record.

getTaxonomies

返回分类法的信息。

用法

import { useSelect } from '@wordpress/data';
import { store as coreDataStore } from '@wordpress/core-data';

const taxonomies = useSelect( ( select ) => {
	return select( coreDataStore ).getTaxonomies( { type: 'post' } );

	// 等价于:
	// select( coreDataStore ).getEntityRecords( 'root', 'taxonomy', { type: 'post' } );
} );

参数

  • query GetRecordsHttpQuery: 可选的分类项查询。如果请求特定字段,字段必须始终包含 ID。关于有效的查询参数,请参阅 REST API 手册中的 参考,并选择实体种类。然后查看“列出 [实体种类]”可用的参数。

返回值

  • EntityRecord[] | null: 记录。

其他选择器

canUser

返回当前用户是否可以对给定的 REST 资源执行指定操作。

调用此函数可能会通过 canUser() 解析器触发对 REST API 的 OPTIONS 请求。

https://developer.wordpress.org/rest-api/reference/

参数

  • state State: 数据状态。
  • action string: 要检查的操作。可选值:'create'、'read'、'update'、'delete'。
  • resource string | EntityResource: 要检查的实体资源。接受实体对象 { kind: 'postType', name: 'attachment', id: 1 } 或字符串形式的 REST base - media。
  • id EntityRecordKey: 要检查的 REST 资源的可选 ID。

返回值

  • boolean | undefined: 用户是否可以执行该操作,如果 OPTIONS 请求仍在进行中,则返回 undefined。

canUserEditEntityRecord

返回当前用户是否可以编辑给定的实体。

调用此函数可能会通过 canUser() 解析器触发对 REST API 的 OPTIONS 请求。

https://developer.wordpress.org/rest-api/reference/

参数

  • state State: 数据状态。
  • kind string: 实体类型。
  • name string: 实体名称。
  • recordId EntityRecordKey: 记录的 ID。

返回值

  • boolean | undefined: 用户是否可以编辑,如果 OPTIONS 请求仍在进行中,则返回 undefined。

getAuthors

已弃用 自 11.3 版本起。调用者应改用 select( 'core' ).getUsers({ who: 'authors' })。

返回所有可用的作者。

参数

  • state State: 数据状态。
  • query GetRecordsHttpQuery: 可选的查询参数对象,将随请求一同发送。有效的查询参数请参阅 REST API 手册中的 用户页面,并查看 列出用户 和 检索用户 的参数说明。

返回值

  • ET.User[]: 作者列表。

getAutosave

返回文章和作者的自动保存内容。

参数

  • state State: 状态树。
  • postType string: 父级文章的类型。
  • postId EntityRecordKey: 父级文章的 ID。
  • authorId EntityRecordKey: 作者的 ID。

返回值

  • EntityRecord | undefined: 文章和作者的自动保存内容。

getAutosaves

返回该文章的最新自动保存版本。

由于后端会为每篇文章的每位作者存储一个自动保存版本,因此可能返回多个自动保存。

参数

  • state State: 状态树。
  • postType string: 父级文章的类型。
  • postId EntityRecordKey: 父级文章的 ID。

返回值

  • Array< any > | undefined: 该文章的自动保存数组,如果没有则返回 undefined。

getBlockPatternCategories

获取已注册的区块模式分类列表。

参数

  • state State: 数据状态。

返回值

  • Array< any >: 区块模式分类列表。

getBlockPatterns

获取已注册的区块模式列表。

参数

  • state State: 数据状态。

返回值

  • Array< any >: 区块模式列表。

getCurrentTheme

返回当前主题。

参数

  • state State: 数据状态。

返回值

  • any: 当前主题。

getCurrentThemeGlobalStylesRevisions

已弃用 自 WordPress 6.5.0 起。调用者应改用 select( 'core' ).getRevisions( 'root', 'globalStyles', ${ recordKey } ),其中 recordKey 是全局样式父文章的 ID。

返回当前全局样式主题的修订版本。

参数

  • state State: 数据状态。

返回值

  • Array< object > | null: 当前全局样式。

getCurrentUser

返回当前用户。

参数

  • state State: 数据状态。

返回值

  • ET.User< 'view' >: 当前用户对象。

getDefaultTemplateId

返回用于渲染给定查询的默认模板。

参数

  • state State: 数据状态。
  • query TemplateQuery: 查询。

返回值

  • string: 给定查询的默认模板 ID。

getEditedEntityRecord

返回指定的实体记录,并与其编辑内容合并。

参数

  • state State: 状态树。
  • kind string: 实体类型。
  • name string: 实体名称。
  • recordId EntityRecordKey: 记录 ID。

返回值

  • ET.Updatable< EntityRecord > | false: 实体记录,已与其编辑内容合并。

getEmbedPreview

返回给定 URL 的嵌入预览。

参数

  • state State: 数据状态。
  • url string: 嵌入的 URL。

返回值

  • any: 如果尚未获取预览,则为 undefined;否则,为从嵌入预览 API 获取的预览。

getEntitiesByKind

已弃用 自 WordPress 6.0 起。请改用 getEntitiesConfig

返回给定种类已加载的实体。

参数

  • state State: 数据状态。
  • kind string: 实体种类。

返回值

  • Array< any >: 配置与种类匹配的实体数组。

getEntitiesConfig

返回指定类型已加载的实体。

参数

  • state State: 数据状态。
  • kind string: 实体类型。

返回值

  • Array< any >: 配置与类型匹配的实体数组。

getEntity

已弃用 自 WordPress 6.0 起。请改用 getEntityConfig

根据给定的实体种类和名称返回实体配置。

参数

  • state State: 数据状态。
  • kind string: 实体种类。
  • name string: 实体名称。

返回值

  • any: 实体配置

getEntityConfig

根据实体类型和名称返回其配置。

参数

  • state State: 数据状态。
  • kind string: 实体类型。
  • name string: 实体名称。

返回值

  • any: 实体配置

getEntityRecord

根据键返回实体的记录对象。如果值尚未接收则返回 null,如果已知该实体不存在则返回 undefined,如果实体存在且已接收则返回实体对象。

参数

  • state State: 状态树
  • kind string: 实体种类
  • name string: 实体名称
  • key EntityRecordKey: 可选的记录键。如果请求全局记录(例如站点设置),可以省略键。如果请求特定项目,则必须始终包含键。
  • query GetRecordsHttpQuery: 可选查询。如果请求特定字段,字段必须始终包含 ID。有关有效查询参数,请参阅 REST API 手册中的参考并选择实体种类。然后查看“检索 [实体种类]”可用的参数。

返回值

  • EntityRecord | undefined: 记录

getEntityRecordEdits

返回指定实体记录的编辑内容。

参数

  • state State: 状态树。
  • kind string: 实体类型。
  • name string: 实体名称。
  • recordId EntityRecordKey: 记录 ID。

返回值

  • Optional< any >: 实体记录的编辑内容。

getEntityRecordNonTransientEdits

返回指定实体记录的非临时性编辑。

临时性编辑不会创建撤销层级,并且不会用于变更检测。它们定义在实体的配置中。

参数

  • state State: 状态树。
  • kind string: 实体种类。
  • name string: 实体名称。
  • recordId EntityRecordKey: 记录 ID。

返回值

  • Optional< any >: 实体记录的非临时性编辑。

getEntityRecords

返回实体的记录。

参数

  • state State: 状态树
  • kind string: 实体种类
  • name string: 实体名称
  • query GetRecordsHttpQuery: 可选的查询条件。如果请求特定字段,字段必须始终包含 ID。关于有效的查询参数,请参阅 REST API 手册中的参考,并选择实体种类。然后查看"列出 [实体种类]"可用的参数。

返回值

  • EntityRecord[] | null: 记录。

getEntityRecordsTotalItems

返回给定查询下实体的总可用记录数(忽略分页)。

参数

  • state State: 状态树
  • kind string: 实体种类。
  • name string: 实体名称。
  • query GetRecordsHttpQuery: 可选的查询条件。如果请求特定字段,字段必须始终包含 ID。有关有效的查询参数,请参阅 REST API 手册中的参考,并选择实体种类。然后查看"列出 [实体种类]"可用的参数。

返回值

  • number | null: 数字 | null。

getEntityRecordsTotalPages

返回给定查询的可用页数。

参数

  • state State: 状态树
  • kind string: 实体种类
  • name string: 实体名称
  • query GetRecordsHttpQuery: 可选的查询条件。如果请求特定字段,字段必须始终包含 ID。关于有效的查询参数,请参阅 REST API 手册中的参考,并选择实体种类。然后查看"列出 [实体种类]"可用的参数。

返回值

  • number | null: 数字 | null

getLastEntityDeleteError

返回指定实体记录的上次删除错误。

参数

  • state State: 状态树。
  • kind string: 实体种类。
  • name string: 实体名称。
  • recordId EntityRecordKey: 记录 ID。

返回值

  • any: 实体记录的保存错误。

getLastEntitySaveError

返回指定实体记录的上次保存错误。

参数

  • state State: 状态树。
  • kind string: 实体种类。
  • name string: 实体名称。
  • recordId EntityRecordKey: 记录 ID。

返回值

  • any: 实体记录的保存错误。

getRawEntityRecord

根据键返回实体的记录对象,其属性映射为原始值。

参数

  • state State: 状态树。
  • kind string: 实体种类。
  • name string: 实体名称。
  • key EntityRecordKey: 记录的键。

返回值

  • EntityRecord | undefined: 包含实体原始属性的对象。

getRedoEdit

已弃用 自 6.3 版本起

返回实体记录编辑历史中,从当前撤销偏移量起的下一个编辑(如果存在)。

参数

  • state State: 状态树。

返回值

  • Optional< any >: 编辑内容。

getReferenceByDistinctEdits

当编辑值发生变化时返回一个新的引用。这有助于通过严格相等性比较返回值来推断状态之间何处发生了编辑。

用法

const hasEditOccurred = (
   getReferenceByDistinctEdits( beforeState ) !==
   getReferenceByDistinctEdits( afterState )
);

参数

  • state 编辑器状态。

返回值

  • 一个仅在编辑发生时其引用才会改变的值。

getRevision

返回父实体的单个特定修订版本。

参数

  • state State: 状态树
  • kind string: 实体类型。
  • name string: 实体名称。
  • recordKey EntityRecordKey: 要获取其修订版本的实体记录的键。
  • revisionKey EntityRecordKey: 修订版本的键。
  • query GetRecordsHttpQuery: 可选查询。如果请求特定字段,字段必须始终包含 ID。有关有效查询参数,请参阅 REST API 手册 中的修订模式。然后查看“检索 [实体类型]”中可用的参数。

返回值

  • RevisionRecord | Record< PropertyKey, never > | undefined: 记录。

getRevisions

返回一个实体的修订版本。

参数

  • state State: 状态树
  • kind string: 实体类型。
  • name string: 实体名称。
  • recordKey EntityRecordKey: 要获取其修订版本的实体记录的键。
  • query GetRecordsHttpQuery: 可选查询。如果请求特定字段,字段必须始终包含 ID。关于有效的查询参数,请参阅 REST API 手册 中的修订模式。然后查看“检索一个 [实体类型]”中可用的参数。

返回值

  • RevisionRecord[] | null: 记录。

getSyncConnectionStatus

返回所有实体的当前同步连接状态。优先返回断开连接状态,其次是正在连接,最后是已连接。

参数

  • state State: 数据状态。

返回值

  • ConnectionStatus | undefined: 按重要性排序的当前同步连接状态。

getThemeSupports

返回索引中的主题支持数据。

参数

  • state State: 数据状态。

返回值

  • any: 索引数据。

getUndoEdit

已弃用 自 6.3 版本起

从实体记录编辑历史记录的当前撤销偏移量返回先前的编辑(如果存在)。

参数

  • state State: 状态树。

返回值

  • Optional< any >: 编辑内容。

getUserPatternCategories

获取已注册的用户模式类别。

参数

  • state State: 数据状态。

返回值

  • Array< UserPatternCategory >: 用户模式类别数组。

getUserQueryResults

返回由查询 ID 返回的所有用户。

参数

  • state State: 数据状态。
  • queryID string: 查询 ID。

返回

  • ET.User< 'edit' >[]: 用户列表。

hasEditsForEntityRecord

如果指定的实体记录有编辑,则返回 true,否则返回 false。

参数

  • state State: 状态树。
  • kind string: 实体种类。
  • name string: 实体名称。
  • recordId EntityRecordKey: 记录 ID。

返回值

  • boolean: 实体记录是否有编辑。

hasEntityRecord

如果已收到给定参数集的记录,则返回 true,否则返回 false。

注意:如果本地状态中不存在该实体记录,此操作不会触发从 API 请求该记录。

参数

  • state State: 状态树
  • kind string: 实体类型
  • name string: 实体名称
  • key EntityRecordKey: 记录的键
  • query GetRecordsHttpQuery: 可选查询

返回值

  • boolean: 是否已收到实体记录

hasEntityRecords

如果已收到给定参数集的记录则返回 true,否则返回 false。

参数

  • state State: 状态树
  • kind string: 实体类型。
  • name string: 实体名称。
  • query GetRecordsHttpQuery: 可选的查询条件。关于有效的查询参数,请参阅 REST API 手册中的参考文档,并选择实体类型。然后查看"列出 [实体类型]"可用的参数。

返回值

  • boolean: 是否已收到实体记录。

hasFetchedAutosaves

如果自动保存的 REST 请求已完成,则返回 true。

参数

  • state State: 状态树。
  • postType string: 父级文章的类型。
  • postId EntityRecordKey: 父级文章的 ID。

返回值

  • boolean: 如果 REST 请求已完成,则为 true。否则为 false。

hasRedo

如果实体记录编辑历史中,从当前撤销偏移量起存在下一个编辑,则返回 true;否则返回 false。

参数

  • state State: 状态树。

返回值

  • boolean: 是否存在下一个编辑。

hasRevision

如果已收到给定参数集的修订版本,则返回 true,否则返回 false。

注意:如果本地状态中不可用,此函数不会触发从 API 请求修订版本。

参数

  • state State: 状态树
  • kind string: 实体类型。
  • name string: 实体名称。
  • recordKey EntityRecordKey: 要检查其修订版本的实体记录的键。
  • revisionKey EntityRecordKey: 修订版本的键。
  • query GetRecordsHttpQuery: 可选查询。

返回值

  • boolean: 是否已收到修订版本。

hasUndo

如果实体记录编辑历史中,从当前撤销偏移量起存在先前的编辑,则返回 true;否则返回 false。

参数

  • state State: 状态树。

返回值

  • boolean: 是否存在先前的编辑。

isAutosavingEntityRecord

如果指定的实体记录正在自动保存,则返回 true,否则返回 false。

参数

  • state State: 状态树。
  • kind string: 实体种类。
  • name string: 实体名称。
  • recordId EntityRecordKey: 记录 ID。

返回值

  • boolean: 实体记录是否正在自动保存。

isDeletingEntityRecord

如果指定的实体记录正在删除,则返回 true,否则返回 false。

参数

  • state State: 状态树。
  • kind string: 实体种类。
  • name string: 实体名称。
  • recordId EntityRecordKey: 记录 ID。

返回值

  • boolean: 实体记录是否正在删除。

isPreviewEmbedFallback

判断返回的预览是否为 oEmbed 链接回退。

WordPress 可配置为在 URL 不可嵌入时返回一个简单链接。我们需要能够根据从 oEmbed 预览 API 返回的内容来判断 URL 是否可嵌入。

参数

  • state State: 数据状态。
  • url string: 嵌入的 URL。

返回

  • boolean: 该 URL 的预览是否为 oEmbed 链接回退。

isRequestingEmbedPreview

如果正在请求嵌入预览数据则返回 true,否则返回 false。

参数

  • state State: 数据状态。
  • url string: 预览对应的 URL。

返回值

  • boolean: 是否正在请求嵌入预览。

isSavingEntityRecord

如果指定的实体记录正在保存,则返回 true,否则返回 false。

参数

  • state State: 状态树。
  • kind string: 实体种类。
  • name string: 实体名称。
  • recordId EntityRecordKey: 记录 ID。

返回值

  • boolean: 实体记录是否正在保存。

操作

addEntities

返回用于添加新实体的操作对象。

参数

  • entities Array: 接收到的实体。

返回值

  • Object: 操作对象。

clearEntityRecordEdits

用于清除实体记录所有编辑操作的动作触发器。

参数

  • kind string: 实体类型。
  • name string: 实体名称。
  • recordId number|string: 实体记录的 ID。

返回值

  • Object: 动作对象。

deleteEntityRecord

用于删除实体记录的操作。

参数

  • kind string: 被删除实体的类型。
  • name string: 被删除实体的名称。
  • recordId number|string: 被删除实体的记录 ID。
  • query ?Object: 用于 DELETE API 调用的特殊查询参数。
  • options [Object]: 删除选项。
  • options.__unstableFetch [Function]: 仅限内部使用。用于替代 apiFetch() 调用的函数。必须返回一个 Promise。
  • options.throwOnError [boolean]: 如果为 false,此操作将抑制所有异常。默认为 false。

editEntityRecord

返回一个触发编辑实体记录的操作对象。

参数

  • kind string: 被编辑实体记录的种类。
  • name string: 被编辑实体记录的名称。
  • recordId number|string: 被编辑实体记录的 ID。
  • edits Object: 编辑内容。
  • options Object: 编辑选项。
  • options.undoIgnore [boolean]: 是否在撤销历史中忽略此编辑。

返回值

  • Object: 操作对象。

receiveDefaultTemplateId

返回一个用于为给定查询设置模板的操作对象。

参数

  • query Object: 查找查询。
  • templateId string: 解析后的模板 ID。

返回值

  • Object: 操作对象。

receiveEntityRecords

返回一个用于表示已接收到实体记录的动作对象。

参数

  • kind string: 接收到的实体记录的种类。
  • name string: 接收到的实体记录的名称。
  • records Array|Object: 接收到的记录。
  • query ?Object: 查询对象。
  • invalidateCache ?boolean: 是否应使查询缓存失效。
  • edits ?Object: 要重置的编辑内容。
  • meta ?Object: 关于分页的元信息。

返回值

  • Object: 动作对象。

receiveNavigationFallbackId

返回一个动作对象,表示已接收到备用导航菜单的 ID。

参数

  • fallbackId integer:备用导航菜单的 ID

返回值

  • Object:动作对象。

receiveRevisions

用于接收修订项的操作。

参数

  • kind string: 接收到的实体记录修订的类型。
  • name string: 接收到的实体记录修订的名称。
  • recordKey number|string: 要获取其修订的实体记录的键。
  • records Array|Object: 接收到的修订。
  • query ?Object: 查询对象。
  • invalidateCache ?boolean: 是否应使查询缓存失效。
  • meta ?Object: 关于分页的元信息。

receiveThemeSupports

已弃用 自 WP 5.9 起,此功能不再有用,请直接使用选择器。

返回一个用于表示索引已接收的动作对象。

返回值

  • Object: 动作对象。

receiveUploadPermissions

已弃用 自 WP 5.9 起,请改用 receiveUserPermission。

返回一个用于表示已接收到上传权限的操作对象。

参数

  • hasUploadPermissions boolean: 用户是否有上传文件的权限?

返回值

  • Object: 操作对象。

redo

触发此操作以重做对实体记录的最后一次撤销编辑(如果存在)。

saveEditedEntityRecord

触发此操作以保存实体记录的编辑。

参数

  • kind string: 实体的种类。
  • name string: 实体的名称。
  • recordId Object: 记录的 ID。
  • options Object=: 保存选项。

saveEntityRecord

用于保存实体记录的操作触发器。

参数

  • kind string: 接收实体的种类。
  • name string: 接收实体的名称。
  • record Object: 待保存的记录。
  • options Object: 保存选项。
  • options.isAutosave [boolean]: 是否为自动保存。
  • options.__unstableFetch [Function]: 仅限内部使用。用于替代 apiFetch() 调用的函数。必须返回一个 Promise。
  • options.throwOnError [boolean]: 若为 false,此操作将抑制所有异常。默认为 false。

setSyncConnectionStatus

返回一个用于设置实体或集合的同步连接状态的动作对象。

参数

  • kind string: 实体的种类。
  • name string: 实体的名称。
  • key number|string|null: 实体键值,对于集合则为 null。
  • status Object|null: 连接状态对象,卸载时为 null。

返回值

  • Object: 动作对象。

撤销

当需要撤销对实体记录的最后一次编辑(如果存在)时触发的操作。