在不知道POST类型的情况下获取实体记录

时间:2021-05-27 作者:leemon

在古腾堡getEntityRecord 选择器,用于获取特定帖子类型的帖子数据:

// get the post object of a page with post id = 42
const post = useSelect( ( select ) =>
    select(\'core\').getEntityRecord( \'postType\', \'page\', 42 )
);
我的问题是,当你事先不知道帖子的类型时,是否有类似的选择器?我有一个元字段,它存储不同帖子类型的帖子ID数组,现在我无法获取完整的帖子对象。

有什么想法吗?

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

我的问题是,当你事先不知道帖子的类型时,是否有类似的选择器?

不,在撰写本文时,还没有。

基本问题是RESTAPI没有提供一种通用机制来获取给定post ID的post类型post 但要做到这一点,您需要提前知道类型,才能找到正确的URL。

由于实体记录API依赖于这些端点,因此技术上没有post ID。有一个带有ID的页面记录,或一个带有ID的post记录,等等

因此,如果要正确执行此操作,您需要保存post类型,限制该元字段允许的类型,或者遍历不同的实体类型,查看哪些返回404,哪些不返回404。