title: "WordPress 核心数据" post_status: publish comment_status: open taxonomy: category: - gutenberg-docs post_tag: - Data - Reference Guides - Repos
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: 动作对象。
撤销
当需要撤销对实体记录的最后一次编辑(如果存在)时触发的操作。