4
$opts  = array(); // any arguments
$query = WP_Query($opts);

通常,我们可以通过使用获取max_num_pages$totalPages = $query->max_num_pages; 但是,我使用这个插件http://wp-api.org/发出 json 请求。

当我尝试使用 API 检索帖子时,响应只是 json 对象/帖子数组。问题是,$query->max_num_pages;无法访问。我需要那个 var 来发出分页请求。

例如,我想提出一个请求:

$.ajax({
    url: 'wp-json/posts?page=' + currentPage + '&filter[posts_per_page]=' + perPage + '&filter[cat]=' + category
});

currentPage如果我们不知道max_num_pages ,我们如何填充var ?如果我只是用 填充currentPage1没关系(因为假设它是第 1 页)。但我怎么知道是否有第 2 页、第 3 页?

你有什么主意吗?非常感谢,任何帮助:)

4

2 回答 2

4

WP_Query 在响应标头中为您提供所需的内容。

您要查找的术语是X-WP-TotalX-WP-TotalPages

在 jQuery 中,您会得到如下所示的 AJAX 响应标头:

$.ajax({
  url: myURL,
  success: function(data, textStatus, request){
    console.log("This is the header you're looking for",request.getResponseHeader('X-WP-Total'));
  }
});

注意 我没有机会正确测试这个,因为我不在我的开发机器旁

于 2015-06-29T21:39:06.253 回答
0

您可以从 http 响应的“X-WP-TotalPages”HTTP 标头获取总页数。例如,使用 curl 从命令行进行测试:

curl -i http://example.com/wp-json/posts

获得总页数后,例如,50 页,您可以从 1 循环到 50,上面 CLI 的响应还包含一个有用的标题,称为“链接:”,您可以从以下链接获取更多详细信息:http://wp- api.org/guides/getting-started.html

您需要自己在代码中获取此值。

于 2015-03-30T13:05:03.267 回答