命名空间: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:要获取其修订版本的实体记录的键。
  • query 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

    触发以撤销实体记录上一次编辑(如果有)的动作。