我以前在几个网站上使用过WordPress REST API版本1(V1) . 我广泛使用的一个功能是能够在单个查询中调用多个帖子类型 .
在WP REST API版本1中,我能够使用以下 endpoints 来获取包含来自 book
和 movie
帖子类型的帖子的列表:
http://example.com/wp-json/posts?type[]=book&type[]=movie
我已经设置了自定义帖子类型,以便可以从api访问它们,并且可以像这样调用:
http://example.com/wp-json/wp/v2/book/
http://example.com/wp-json/wp/v2/movie/
在WP REST API Version 2(V2)中实现此目的的最佳方法是什么?我已经研究过自定义 endpoints ,但我不确定这对我来说是最好的解决方案(http://v2.wp-api.org/extending/adding/) . 可能有十几个自定义帖子类型,我需要根据用户输入他们想要查看的内容类型来运行动态查询 .
如果有人之前处理过类似问题,我愿意接受想法或建议 .
感谢大家!
Update:
在WP-API问题论坛中我被告知在V2中这是不可能的:https://github.com/WP-API/WP-API/issues/2567
这对我来说根本没有意义 . 在WordPress中,我可以为 movie
创建一个帖子类型,为 book
创建另一个帖子类型,两者都可以共享 genre
的自定义分类 . 使用 WP_Query
,如果我愿意的话,我可以在一个循环中查询这两种帖子类型 . 为什么WordPress的REST API不包含同时查询这两者的基本功能,特别是因为它在V1中工作正常?如果没有此功能,我将无法将当前的Web应用程序从V1更新到V2 .
我现在的问题是,是否有人成功创建了可以创建此功能的 endpoints ?
1 回答
我需要你所要求的功能,所以我制作了一个自定义 endpoints . 它只暴露了多个帖子的
WP_REST_Server::READABLE
请求,但似乎效果很好 .大多数post-type特定的东西都被简单地转发到WP_REST_Posts_Controller实例,这些实例是为每个查询结果实例化的 . 我希望这会降低与其他插件的兼容性问题或api未来更新的风险 .
随意使用以下代码:
要注册 endpoints ,您可以使用以下内容: