Ottenere il conteggio dei post nell'API REST WP v2 e tutte le categorie
Voglio ottenere il conteggio dei miei post. Penso di utilizzare
wp-json/wp/v2/categories?page=1 >> count sembra un buon approccio. Ma utilizzare questa soluzione non è ottimale in termini di velocità e non so come ottenere tutte le categorie con una singola chiamata (se lo sai sarebbe molto utile se lo condividessi). C'è un modo/tutorial/... che mi permetta di aggiungere il conteggio dei post in una chiamata principale? come questo percorso: wp-json/wp/v2/posts....
L'API REST di WP invia la proprietà del conteggio totale (found_posts) da WP_Query in un header chiamato X-WP-Total
.
PER GLI ARTICOLI: puoi effettuare una chiamata all'endpoint degli articoli dell'API REST
http://demo.wp-api.org/wp-json/wp/v2/posts
Il valore del conteggio degli articoli viene restituito nell'header come X-WP-Total
. Di seguito è riportata una risposta di esempio dal demo ospitato
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
NOTA:
Puoi anche limitare il numero di articoli per pagina che stai recuperando a 1, in modo da non ottenere tutti gli articoli di WordPress solo per ottenere il conteggio
http://demo.wp-api.org/wp-json/wp/v2/posts?per_page=1
Per Ottenere Tutte le Categorie
Tutto ciò che devi fare è effettuare una richiesta GET all'endpoint delle categorie all'indirizzo:
http://demo.wp-api.org/wp-json/wp/v2/categories
Questo restituirà tutte le categorie e il conteggio totale delle categorie può essere trovato nell'header X-WP-Total
.

Nel caso non sia chiaro come accedere effettivamente all'header (con il conteggio dei post) dalla richiesta Ajax, ecco come fare con jQuery .get. Il punto chiave è che la funzione di callback ha un parametro opzionale che contiene la richiesta, la quale include gli 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 ); //stampa il numero di post nella console
});

Proverò a rispondere a parte della tua domanda. Il conteggio dei post nell'API REST di WordPress v2 viene restituito negli header. Puoi ottenere il valore in questo modo:
headers('X-WP-Total')
Conteggio dei post per pagina:
wp-json/wp/v2/categories?page=1&per_page=5

Ho passato ore a cercare su Google e nella documentazione ufficiale di WordPress o della libreria su come ottenere il numero di post tramite l'API REST di WP, persino nella versione 2, ma purtroppo non ho trovato nulla.
Quindi ho provato a ottenere i post incrementando il numero di pagina finché la lunghezza dell'array JSON restituito non diventava 0, il che significa che non ci sono più pagine con post nella categoria, e ho smesso di incrementare il numero di pagina.
Ma se vuoi ottenere un numero arbitrario di post per pagina con l'API REST di WP, puoi facilmente usare il parametro filter[posts_per_page]={$numberOfPosts}
durante l'invio della richiesta.
Spero sia utile.
