6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WP REST API(v1)で投稿の総件数、総ページ数など

Last updated at Posted at 2016-03-24

Wordpressの"WP REST API"プラグインに関するメモになります。
投稿の一覧を取得するのは、/posts エンドポイントにGETリクエストすればよいのですが、
(ページャ実装などに必要な)総ページ数情報などに気づきにくかったのでメモしておきます。

注意

WP REST API バージョン1の情報です。
バージョン2の仕様については調べていません。

結論

レスポンスヘッダの"X-WP-TotalPages","X-WP-Total"を参照すればよい。

  • X-WP-Total
  • 総投稿数
  • X-WP-TotalPages
  • (現在の1ページ当たり表示件数での)総ページ数

簡単な確認方法

※ドメインとかWordpressのディレクトリは適当に伏せております。

確認コマンド(curl)

$ curl -s -D - http://exapmle.com/path/to/wordpress/wp-json/posts -o /dev/null

レスポンスボディを/dev/nullに捨ててレスポンスヘッダのみ表示してます->参考

結果(レスポンスヘッダ一覧)

"X-WP-Total"と"X-WP-TotalPages"が含まれていますね。
記事件数が少ないのでサンプルとしては微妙ですがご容赦ください。

HTTP/1.1 200 OK
Date: Thu, 24 Mar 2016 02:26:40 GMT
Server: Apache/2.2.15 (CentOS)
X-Content-Type-Options: nosniff
X-WP-Total: 2
X-WP-TotalPages: 1
Last-Modified: Wed, 23 Mar 2016 02:37:35 GMT
Link: <http://exapmle.com/path/to/wordpress/wp-json/posts/5>; rel="item"; title="TEST", <http://exapmle.com/path/to/wordpress/wp-json/posts/1>; rel="item"; title="Hello world!"
Content-Length: 4381
Content-Type: application/json; charset=UTF-8

jQueryで確認例

※ 2016/3/24 ちょっと追記
jQueryを使ってAJAXで実装しているのなら、$.ajaxの成功時コールバックの第3引数を見ればよいです

$(function(){
  var postsPerPage = 1; // 1ページ当たり件数
  var currentPage  = 1; // 取得したいページ数 

  $.ajax({
    type: 'GET',
    url:  '/path/to/wordpress/wp-json/posts', // 適当に読みかえてください
    dataType: 'json',
    data: { 
      page: currentPage,
      filter : {
        posts_per_page: postsPerPage
      }
    }
  })
  .done(function(json, textStatus, request){
    // このあたりを参照すればよい
    console.log(request.getAllResponseHeaders());
    console.log(request.getResponseHeader('X-WP-TotalPages')); // 個別に参照するならこうする
    console.log(request.getResponseHeader('X-WP-Total'));      // 個別に参照するならこうする
  })
  .fail(function(){
    // 失敗時処理
  });
});

参考URL

6
3
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?