具有getEntityRecords的所有帖子类型

时间:2020-07-16 作者:Johnny

正如标题所述https://developer.wordpress.org/block-editor/data/data-core/#getEntityRecords 不允许post类型数组或任何类型的分隔类型。WP\\u Query通常接受“any”,但这对JSX新手没有任何建议。我检查了我的本地端点REST端点/wp/v2/types 对于任何线索,这只是显示了我所有现有的帖子类型,我可以过滤,但没有指示如何过滤多个帖子类型。我现在有这个。

const { getEntityRecords } = select( \'core\' );
return {
    suggestions: getEntityRecords( \'posts\', \'\', { per_page: -1, search: ownProps.value } ), 
    onChange: ownProps.onChange,
    value: ownProps.value
}

1 个回复
SO网友:bosco

无法使用同时查询多个职位类型getEntityRecords() 选择器。这是因为WordPress REST API的构建思想与核心WordPress后端不同。

所有数据类型为;“发布”;在传统的PHP API中,API是有点争议的底层数据库实现的产物,而REST API的构建是为了与数据库实现隔离,并将每个post类型视为自己的;资源“;大部分情况下是孤立的。

在您的情况下,单独搜索相关记录类型可能是最好的解决方案。如果确实希望搜索通过REST API公开的所有post类型,可以使用getPostTypes() 来自的选择器core 数据存储以检索类型列表。

或者,REST API会公开search endpoint. 虽然REST API手册中目前没有非常明确的记录,但该端点的subtype 参数不接受post类型的数组。可以使用the @wordpress/api-fetch package, 但值得注意的是,该功能和缓存不会自动利用Gutenberg的数据存储—可能需要实现自定义数据存储以最有效地实现搜索功能(防止每次渲染时重复向REST API发出相同的请求,自动触发对所选数据的重新渲染等)。

相关推荐