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

通常はmax_num_pagesを使用して取得できますが、このプラグインhttp://wp-api.org/$totalPages = $query->max_num_pages; を使用して json リクエストを作成します。

API を使用して投稿を取得しようとしたとき、応答は単に json オブジェクト/投稿の配列です。問題は、$query->max_num_pages;アクセスできないことです。ページ分割されたリクエストを行うには、その変数が必要です。

たとえば、私はリクエストをしたい:

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

max_num_pagescurrentPageがわからない場合、どのように変数を埋めることができますか? をで埋めるだけなら問題ありません (ページ 1 であると想定しているため)。しかし、ページ 2、ページ 3 があるかどうかはどうすればわかりますか?currentPage1

何か考えはありますか?どうもありがとう、助けてくれてありがとう:)

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レスポンスのHTTPヘッダ「X-WP-TotalPages」から総ページ数を取得できます。たとえば、コマンド ラインからのテストに curl を使用すると、次のようになります。

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

合計ページ数 50 ページを取得した後、たとえば、1 から 50 までループできます。上記の CLI からの応答には、「Link:」と呼ばれる便利なヘッダーも含まれています。このリンクから詳細を取得できます: http://wp- api.org/guides/getting-started.html .

この値を自分でコードで取得する必要があります。

于 2015-03-30T13:05:03.267 に答える