WP REST API,查询类别中的总帖子

时间:2015-09-20 作者:Matt Fleming

我刚刚开始使用WP REST API,发现在查询帖子时,除非另有规定,否则每页最多只能发布10篇帖子。我想知道的是,是否可以通过元数据或类似的方式返回类别中的帖子总数?

2 个回复
SO网友:Jesús Franco

为了只知道类别中的帖子数量,其端点直接返回该数字,例如:

curl http://wired.com/wp-json/wp/v2/categories/24
在返回的资源中count 字段显示:486

如果您请求该类别中的帖子,而不是该类别本身,那么元数据显示的帖子总数与此相同:

curl -I http://wired.com/wp-json/wp/v2/posts?categories=24
您可以读取标题X-WP-Total: 486.

WordPress的REST API遵循当前API使用的最佳实践,其中包括在标头中返回有关请求的元数据,以及在可能的情况下遍历集合的链接。

不需要等待长度===0的帖子数组,就可以知道没有更多的帖子页面。

实际上,rest API返回的是标题、关于页面数量的元数据以及可用于同一端点/过滤器的帖子总数。

例如,以wired的API为例。com:

curl -I http://wired.com/wp-json/wp/v2/posts/
它返回与此问题相关的三个标题:

Link: <http://www.wired.com/wp-json/wp/v2/posts?page=2>; rel="next"
X-WP-TotalPages: 18067
X-WP-Total: 180664
如您所见,结果足够一致,可以知道您是否需要检索更多帖子,或者您已经到达列表的末尾。您有X-WP-Total显示此端点的资源总数,X-WP-TotalPages显示具有相同帖子数的页面数(默认值为10,但您可以使用query参数请求更多内容per_page).

而且链接头为您提供了更多的信息,您可以使用这些信息进行遍历,而无需在请求更多之前存储帖子的总数。

例如:$ curl -I http://www.wired.com/wp-json/wp/v2/posts?page=18067提供此链接标题:

Link: <http://www.wired.com/wp-json/wp/v2/posts?page=18066>; rel="prev"
(否next 链接,就像第一页没有prev 链接)。

和中间页:$ curl -I http://www.wired.com/wp-json/wp/v2/posts?page=2为您提供下一个和上一个链接:

Link: <http://www.wired.com/wp-json/wp/v2/posts?page=1>; rel="prev", <http://www.wired.com/wp-json/wp/v2/posts?page=3>; rel="next"
我怀疑REST API可以返回的帖子数量更多地与服务器功能相关,因为我能够返回per_page=100 没有任何麻烦。

SO网友:Sdghasemi

虽然来晚了一点,但如果有人想用WP-restapi甚至v2找到解决方案,我不得不说YOU CANNOT.我花了几个小时在谷歌、WordPress或图书馆官方文档上搜索,但不幸的是什么都没有找到。

所以我试着用越来越多的页码获取帖子,直到JSON array length 成为0 这意味着no more page with posts 并停止增加页码。

希望它能帮助别人。

相关推荐

是否可以取消对特定帖子类型的POSTS_PER_PAGE限制?

我想知道我是否可以取消特定帖子类型的posts\\u per\\u页面限制。在存档中。php页面我显示不同的帖子类型,对于特定的“出版物”帖子类型,我想显示所有帖子。我如何在不影响传统“post”类型的情况下实现这一点?