获取wp rest API v2中的帖子数并获取所有类别


10

我想获得我的帖子数。我觉得用

wp-json / wp / v2 / categories?page = 1 >>算是一个好方法。但是使用上述解决方案在速度上不是一杯茶,我不知道如何通过一个电话获得所有类别(如果您知道如果您分享它会很有帮助)。有什么方法/教程/ ...可以让我在主通话中添加帖子数吗?就像这条路线:wp-json / wp / v2 / posts...。

Answers:


21

WP Rest API 从WP_Query 发送总数count(found_posts)属性。在名为的标头中X-WP-Total

FOR POST:您可以调用REST API的post端点

http://demo.wp-api.org/wp-json/wp/v2/posts

帖子数的值在标头中返回为X-WP-Total。以下是来自托管演示的示例响应

Access-Control-Allow-Headers:Authorization, Content-Type
Access-Control-Expose-Headers:X-WP-Total, X-WP-TotalPages
Allow:GET
Cache-Control:max-age=300, must-revalidate
Connection:keep-alive
Content-Encoding:gzip
Content-Type:application/json; charset=UTF-8
Date:Wed, 28 Dec 2016 12:48:50 GMT
Last-Modified:Wed, 28 Dec 2016 12:48:50 GMT
Link:<https://demo.wp-api.org/wp-json/wp/v2/posts?page=2>; rel="next"
Server:nginx/1.4.6 (Ubuntu)
Transfer-Encoding:chunked
Vary:Cookie
Via:1.1 dfa2cbb51ec90b28f03125592b887c7d.cloudfront.net (CloudFront)
X-Amz-Cf-Id:ri4C3e-AdixwqGv_wYNdGRq9ChsIroy1Waxe2GqkiTqbk4CpiSIQfw==
X-Batcache:MISS
X-Cache:Miss from cloudfront
X-Content-Type-Options:nosniff
X-EC2-Instance-Id:i-198c7e94
X-Powered-By:PHP/7.0.11-1+deb.sury.org~trusty+1
X-Robots-Tag:noindex
X-WP-Total:71
X-WP-TotalPages:8

注意:

您还可以将获取的每页帖子数限制为1,这样就不会仅仅为了获得帖子数而获取所有的wordpress帖子

http://demo.wp-api.org/wp-json/wp/v2/posts?per_page=1

获取所有类别

您所要做的就是向类别端点发出GET请求:

http://demo.wp-api.org/wp-json/wp/v2/categories

这将返回所有类别,并且类别的总数也可以在X-WP-Total标题中找到。


7

如果不清楚如何从Ajax请求中实际访问标头(带有发布计数),以下是使用jQuery .get的方法。关键是回调函数具有一个包含请求的可选参数,该参数包括标题。

$.get( 'http://demo.wp-api.org/wp-json/wp/v2/posts', function( data, status, request ) {
numPosts = request.getResponseHeader('x-wp-total');
console.log( numPosts ); //outputs number of posts to console
});

1

尝试回答部分问题。标头中返回的wp rest api v2的计数。您可以像这样获得价值:

headers('X-WP-Total')

每页的帖子数:

wp-json/wp/v2/categories?page=1&per_page=5

0

我花了数小时来搜索有关WP REST API的帖子数量,甚至通过Google和WordPress或v2或库官方文档来获取帖子数量,但不幸的是没有提出任何建议。

因此,我尝试获取页数增加的帖子,直到返回的JSON数组长度变为0,这意味着该类别上的帖子已不再存在,并停止了页码的增加。

但是,如果您想使用WP REST API在每个页面上获得任意数量的帖子,则可以filter[posts_per_page]={$numberOfPosts}在发送请求时轻松使用参数。

希望能帮助到你。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.