我过去在几个网站上使用过WordPress REST API Version 1(V1),其中一个我广泛使用的功能是在一个查询中调用多个帖子类型的能力。
在WP REST API版本1中,我可以使用以下端点来获取包含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)中实现这一点的最佳方法是什么?我已经研究过自定义端点,但我不确定这是否是最适合我的解决方案(http://v2.wp-api.org/extending/adding/)。可能有十几种自定义帖子类型,我需要根据用户输入的内容类型运行动态查询。
如果有人以前处理过类似的问题,我愿意听取意见或建议。
谢谢大家!
更新日期:
我在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。
我现在的问题是,有没有人成功地创建了一个端点,可以创建这个功能?
2条答案
按热度按时间hsvhsicv1#
我需要的正是您所要求的功能,所以我做了一个自定义端点。它只公开了一个
WP_REST_Server::READABLE
请求多个职位,但它似乎工作得很好。大多数特定于post类型的东西都被简单地转发到WP_REST_Posts_Controller示例,这些示例会为每个查询结果示例化。我希望这将降低与其他插件或未来API更新的兼容性问题的风险。
请随意使用下面的代码:
要注册端点,可以使用类似于以下内容的代码:
gstyhher2#
有人根据Ruben Ray Vreeken的Accepted Answer构建了一个插件:
https://github.com/elevati/wp-api-multiple-posttype
对我来说就像一种魔力。