WP REST API v2で投稿数を取得し、すべてのカテゴリを取得する


9

投稿数を知りたい。使うと思う

wp-json / wp / v2 / categories?page = 1 >>カウントするのが良い方法です。しかし、上記の解決策を使用することは、速度の点でお茶ではなく、1回の呼び出しですべてのカテゴリを取得する方法がわかりません(もし知っていれば、共有すると非常に役立ちます)。メインコールに投稿数を追加できるようにする方法/チュートリアル/ ...はありますか?このルートのように:wp-json / wp / v2 / posts ...

回答:


21

WP Rest APIは、WP_Queryから合計count(found_posts)プロパティを送信します。と呼ばれるヘッダー内X-WP-Total

投稿の場合 REST APIの投稿エンドポイントを呼び出すことができます

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に制限して、投稿数を取得するためだけにすべてのワードプレス投稿を取得しないようにすることもできます。

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

すべてのカテゴリを取得するには

次のURLで、カテゴリエンドポイントにGETリクエストを行うだけです。

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

これにより、すべてのカテゴリが返され、カテゴリの合計数もX-WP-Totalヘッダーに表示されます。


6

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

私はGoogleとWordPressまたはライブラリの公式ドキュメントを介してWP REST API v2でも投稿数を取得するために何時間も費やしてきましたが、残念ながら何も思いつきませんでした。

したがって、返されたJSON配列の長さ0になるまでページ番号を増やして投稿を取得しようとしましたこれは、カテゴリに投稿持つページがなくなることを意味し、ページ番号の増加を停止しました。

しかし、WP REST APIを使用してページごとに任意の数の投稿を取得したい場合はfilter[posts_per_page]={$numberOfPosts}、リクエストを送信するときにパラメーターを簡単に使用できます。

それが役に立てば幸い。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.