24 KiB
撤销
触发此操作可撤销对实体记录的最后一次编辑(如果存在)。
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 请求是否已完成
hasRedo
若实体记录编辑历史中存在当前撤销偏移量之后的下一个编辑操作则返回 true,否则返回 false。
参数
- state
State: 状态树
返回值
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 无法嵌入时,可配置为返回该 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: 实体记录是否正在保存
操作
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。
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
返回指定分类法的信息。
使用示例
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: 可选的查询条件。如需请求特定字段,字段必须始终包含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基础路径 -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
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:记录。
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:实体记录是否有编辑。
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(获取默认模板 ID)
返回用于渲染指定查询的默认模板。
参数
- 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 >:与类型匹配的实体配置数组。
addEntities(添加实体)
返回用于添加新实体的操作对象。
参数
- entities
Array:接收到的实体。
返回值
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(接收默认模板 ID)
返回用于为给定查询设置模板的操作对象。
参数
- 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)
返回表示已接收到回退导航菜单 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。