我正在使用React select,以便创建一个阻止选项,该选项将为我提供根据所选帖子类型选择帖子类型和帖子的选项。基本上,如果我没弄错的话,Gutenberg插件中正在使用的查询块。
现在最困扰我的是,我无法找到从所选选项中获取所有帖子的最佳方法。例如,我可以获取所有允许的帖子类型,如下所示:
const postTypeOptions = useSelect((select) => {
const { getPostTypes } = select(\'core\');
const items = getPostTypes() ?? [];
const data = items.filter((element) => manifest.allowed.postTypes.find((item) => element.slug === item)) ?? [];
return data.map((item) => {
return {
label: item.labels.name,
value: item.slug,
taxonomies: item.taxonomies,
};
}) ?? [];
});
我在我的区块的选项部分,我有一个清单。json,在这里我可以过滤允许的帖子类型(我不需要所有可用的帖子类型)。上面的代码将要做的是,当我选择我的块时,它将执行API获取,以使用getPostTypes()
, 在我看来,这相当于wp.data.select(\'core\').getPostTypes()
.
现在,可以使用getEntityRecords()
喜欢
wp.data.select( \'core\' ).getEntityRecords( \'postType\', \'post\' )
这将给我的职位在我的WP。我可以更换post
任何自定义帖子类型都可以获取该自定义帖子类型的帖子。但问题是我无法从多个帖子类型中获得所有帖子。
原因是在这下面getEntityRecords
正在Ping API端点,无法一次从多个帖子类型中从一个端点检索所有帖子。
那么我该如何解决这个问题呢?创建一个自定义端点,该端点将根据作为端点参数传递的内容返回所有帖子?正在提取useSelect
不是很好,因为每次我碰到方块都会触发。使用来自的内容wp.data.select
使用缓存和反应存储来避免这种情况。
任何关于如何实现这一目标的建议都会非常有用。