命名空间: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:可选的 terms 查询。如果请求特定字段,字段必须始终包含 ID。有关有效的查询参数,请参阅 REST API 手册中的 参考 并选择实体类型。然后查看“列出 [实体类型]”可用的参数。
返回
EntityRecord[] | null:记录。
getTaxonomy
返回给定分类法的信息。
用法
import { useSelect } from '@wordpress/data';
import { store as coreDataStore } from '@wordpress/core-data';
const taxonomy = useSelect( ( select ) => {
return select( coreDataStore ).getTaxonomy( 'category' );
// 等同于:
// select( coreDataStore ).getEntityRecord( 'root', 'taxonomy', 'category' );
} );
参数
- taxonomy
string
返回
EntityRecord | undefined:记录。
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:可选的 terms 查询。如果请求特定字段,字段必须始终包含 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:对于无键实体,省略此项。
返回
ET.Updatable< EntityRecord > | false:实体记录及其编辑内容的合并结果。
getEmbedPreview
返回给定 URL 的嵌入预览。
参数
- state
State:数据状态。 - url
string:嵌入 URL。
返回
any:如果尚未获取预览,则为未定义;否则为从嵌入预览 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:实体名称。 - recordId
EntityRecordKey:对于无键实体可省略。 - query
GetRecordsHttpQuery:可选查询。如果请求特定字段,fields 必须始终包含 ID。有关有效的查询参数,请参阅 REST API 手册中的参考并选择实体种类。然后查看“获取 [实体种类]”可用的参数。
返回值
EntityRecord | undefined:记录。
getEntityRecordEdits
返回指定实体记录的编辑。
参数
- state
State:状态树。 - kind
string:实体种类。 - name
string:实体名称。 - recordId
EntityRecordKey:对于无键实体可省略。
返回值
Optional< any >:该实体记录的编辑。
getEntityRecordNonTransientEdits
返回指定实体记录的非临时编辑。
临时编辑不会创建撤销级别,也不会纳入更改检测。它们在实体的配置中定义。
参数
- state
State:状态树。 - kind
string:实体种类。 - name
string:实体名称。 - recordId
EntityRecordKey:对于无键实体可省略。
返回值
Optional< any >:该实体记录的非临时编辑。
getEntityRecords
返回实体的记录集合。
参数
- state
State:状态树。 - kind
string:实体种类。 - name
string:实体名称。 - query
GetRecordsHttpQuery:可选查询。如果请求特定字段,fields 必须始终包含 ID。有关有效的查询参数,请参阅 REST API 手册中的参考并选择实体种类。然后查看“列出 [实体种类]”可用的参数。
返回值
EntityRecord[] | null:记录集合。
getEntityRecordsTotalItems
返回指定查询下可用的实体记录总数(忽略分页)。
参数
- state
State:状态树。 - kind
string:实体种类。 - name
string:实体名称。 - query
GetRecordsHttpQuery:可选查询。如果请求特定字段,fields 必须始终包含 ID。有关有效的查询参数,请参阅 REST API 手册中的参考并选择实体种类。然后查看“列出 [实体种类]”可用的参数。
返回值
number | null:number | null。
getEntityRecordsTotalPages
返回指定查询的可用页数。
参数
- state
State:状态树。 - kind
string:实体种类。 - name
string:实体名称。 - query
GetRecordsHttpQuery:可选查询。如果请求特定字段,fields 必须始终包含 ID。有关有效的查询参数,请参阅 REST API 手册中的参考并选择实体种类。然后查看“列出 [实体种类]”可用的参数。
返回值
number | null:number | null。
getLastEntityDeleteError
返回指定实体记录的上次删除错误。
参数
- state
State:状态树。 - kind
string:实体种类。 - name
string:实体名称。 - recordId
EntityRecordKey:记录 ID。
返回值
any:该实体记录的保存错误。
getLastEntitySaveError
返回指定实体记录的上次保存错误。
参数
- state
State:状态树。 - kind
string:实体种类。 - name
string:实体名称。 - recordId
EntityRecordKey:对于无键实体可省略。
返回值
any:该实体记录的保存错误。
getRawEntityRecord
根据键返回实体的记录对象,其属性会映射为原始值。
参数
- state
State:状态树。 - kind
string:实体种类。 - name
string:实体名称。 - recordId
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:可选查询。如果请求特定字段,fields 必须始终包含 ID。有关有效的查询参数,请参阅REST API 手册中的修订版本架构。然后查看“获取 [实体种类]”可用的参数。
返回值
RevisionRecord | Record< PropertyKey, never > | undefined:记录。
getRevisions
返回实体的修订版本。
参数
- state
State:状态树。 - kind
string:实体种类。 - name
string:实体名称。 - recordKey
EntityRecordKey:要获取其修订版本的实体记录的键。
GetRecordsHttpQuery:可选查询。如果请求特定字段,字段必须始终包含 ID。有关有效的查询参数,请参见 REST API 手册 中的修订版本架构。然后查看“检索 [Entity kind]”中可用的参数。返回
RevisionRecord[] | null:记录。
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:对于无键实体可省略。
返回
boolean:该实体记录是否有编辑。
hasEntityRecord
如果已接收到给定参数集合对应的记录,则返回 true,否则返回 false。
注意:如果本地状态中没有该实体记录,此操作不会向 API 发起请求以获取该实体记录。
参数
- state
State:状态树。 - kind
string:实体类型。 - name
string:实体名称。 - recordId
EntityRecordKey:对于无键实体可省略。 - query
GetRecordsHttpQuery:可选查询。
返回
boolean:是否已接收到实体记录。
hasEntityRecords
如果已接收到给定参数集合对应的记录,则返回 true,否则返回 false。
参数
- state
State:状态树。 - kind
string:实体类型。 - name
string:实体名称。 - query
GetRecordsHttpQuery:可选的术语查询。有关有效的查询参数,请参见 REST API 手册中的 参考,并选择实体类型。然后查看“列出 [Entity kind]”中可用的参数。
返回
boolean:是否已接收到实体记录。
hasFetchedAutosaves
如果自动保存的 REST 请求已完成,则返回 true。
参数
- state
State:状态树。 - postType
string:父级文章类型。 - postId
EntityRecordKey:父级文章 ID。
返回
boolean:REST 请求是否已完成。
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:对于无键实体可省略。
返回
boolean:该实体记录是否正在保存。
操作
addEntities
返回用于添加新实体的操作对象。
参数
- entities
Array:接收到的实体。
返回
Object:操作对象。
clearEntityRecordEdits
触发用于清除实体记录中所有编辑的操作。
参数
- kind
string:实体类型。 - name
string:实体名称。 - recordId
[number|string]:对于无键实体可省略。
返回
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|undefined:对于无键实体,请传入undefined。 - edits
Object:编辑内容。 - options
Object:编辑选项。 - options.undoIgnore
[boolean]:是否在撤销历史中忽略该编辑。 - options.isCached
[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
[number|string]:对于无键实体可省略。 - options
[Object]:保存选项。
saveEntityRecord
触发以保存实体记录的动作。
参数
- kind
string:接收的实体类别。 - name
string:接收的实体名称。 - record
Object:要保存的记录。 - options
Object:保存选项。 - options.isAutosave
[boolean]:是否为自动保存。 - options.__unstableFetch
[Function]:仅限内部使用。要调用来替代apiFetch()的函数。必须返回一个 Promise。 - options.throwOnError
[boolean]:如果为 false,该动作将抑制所有异常。默认值为 false。
undo
触发以撤销实体记录上一次编辑(如果有)的动作。