Dapatkan penghitungan pos di API v2 wp rest dan dapatkan semua kategori

9

Saya ingin mendapatkan hitungan posting saya. Saya pikir gunakan

wp-json / wp / v2 / kategori? halaman = 1 >> anggap itu cara yang baik untuk pergi. Tetapi menggunakan solusi di atas bukanlah secangkir teh dalam hal kecepatan dan saya tidak tahu bagaimana mendapatkan semua kategori dengan satu panggilan. (Jika Anda tahu itu akan sangat membantu jika Anda membagikannya). apakah ada cara / tutorial / ... memungkinkan saya untuk menambahkan jumlah posting di panggilan utama? seperti rute ini: wp-json / wp / v2 / postingan ....

mil
sumber

Jawaban:

21

API WP Rest mengirimkan properti total count ( found_posts ) dari WP_Query. di header yang disebut X-WP-Total.

UNTUK POS: Anda dapat membuat panggilan ke pos akhir dari REST API

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

Nilai untuk jumlah posting dikembalikan di header sebagai X-WP-Total. Di bawah ini adalah contoh tanggapan dari demo yang dihosting

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

CATATAN:

Anda juga dapat membatasi posting per halaman yang Anda ambil menjadi 1 sehingga Anda tidak mendapatkan semua posting wordpress Anda hanya untuk mendapatkan jumlah posting

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

Untuk Mendapatkan Semua Kategori

Yang harus Anda lakukan adalah membuat permintaan GET ke titik akhir kategori di:

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

Ini akan mengembalikan semua kategori dan jumlah total kategori dapat ditemukan di X-WP-Totalheader.

Tunji
sumber
6

Dalam hal tidak jelas bagaimana sebenarnya mengakses header (dengan jumlah posting) dari permintaan Ajax, berikut ini adalah bagaimana melakukannya dengan jQuery .get. Kuncinya adalah bahwa fungsi panggilan balik memiliki parameter opsional yang berisi permintaan, yang mencakup header.

$.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
});
mgtech
sumber
1

Cobalah untuk menjawab bagian dari pertanyaan Anda. Hitungan pos istirahat wp api v2 dikembalikan dalam tajuk. Anda bisa mendapatkan nilai seperti ini:

headers('X-WP-Total')

Hitung posting per halaman:

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

Saya menghabiskan waktu berjam-jam untuk mencari jumlah posting dengan WP REST API bahkan v2 melalui Google dan WordPress atau dokumen resmi perpustakaan tetapi sayangnya tidak menghasilkan apa-apa.

Jadi saya mencoba mendapatkan posting dengan bertambahnya jumlah halaman sampai panjang array JSON yang dikembalikan menjadi 0 yang berarti tidak ada lagi halaman dengan posting pada kategori, dan berhenti menambah nomor halaman.

Tetapi jika Anda ingin mendapatkan jumlah posting yang sewenang-wenang per halaman dengan WP REST API Anda dapat dengan mudah menggunakan filter[posts_per_page]={$numberOfPosts}parameter saat mengirim permintaan.

Semoga ini bisa membantu.

Sdghasemi
sumber