Ottieni il conteggio dei post in wp rest API v2 e ottieni tutte le categorie


10

Voglio ottenere il conteggio dei miei post. Penso che usare

wp-json / wp / v2 / categorie? page = 1 >> count è un buon modo per andare. Ma usare la soluzione sopra non è una tazza di tè in termini di velocità e non so come ottenere tutte le categorie con una sola chiamata (se sai che sarebbe così utile se la condividi). c'è un modo / tutorial / ... mi permetta di aggiungere il conteggio dei post in una chiamata principale? piace questo percorso: wp-json / wp / v2 / posts ....

Risposte:


21

L'API Rest di WP invia la proprietà di conteggio totale ( found_posts ) da WP_Query. in un'intestazione chiamata X-WP-Total.

PER POSTI: è possibile effettuare una chiamata ai post endpoint dell'API REST

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

Il valore per il conteggio dei post viene restituito nell'intestazione come X-WP-Total. Di seguito è riportata una risposta di esempio dalla demo ospitata

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 i post per pagina che stai recuperando a 1 in modo da non ricevere tutti i post di wordpress solo per ottenere il conteggio dei post

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

Per ottenere tutte le categorie

Tutto quello che devi fare è fare una richiesta GET all'endpoint delle categorie in:

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

Ciò restituirebbe tutte le categorie e anche il conteggio totale delle categorie si trova X-WP-Totalnell'intestazione.


7

Nel caso in cui non sia chiaro come accedere effettivamente all'intestazione (con il conteggio dei post) dalla richiesta Ajax, di seguito è riportato come farlo con jQuery .get. La chiave è che la funzione di callback ha un parametro opzionale che contiene la richiesta, che include le intestazioni.

$.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

Prova a rispondere a una parte della tua domanda. Conteggio di post wp rest api v2 restituito nelle intestazioni. Puoi ottenere qualcosa di simile a questo:

headers('X-WP-Total')

Conta post per pagina:

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

0

Ho trascorso ore a cercare di ottenere il numero di post con l'API REST WP anche v2 tramite Google e WordPress o i documenti ufficiali della biblioteca, ma sfortunatamente non ho trovato nulla.

Quindi ho provato a ottenere post con un numero di pagina crescente fino a quando la lunghezza dell'array JSON restituita non diventa 0, il che significa che non c'è più pagina con post nella categoria e ho smesso di aumentare il numero di pagina.

Ma se si desidera ottenere un numero arbitrario di post per pagina con l'API REST WP, è possibile utilizzare facilmente i filter[posts_per_page]={$numberOfPosts}parametri durante l'invio della richiesta.

Spero che sia d'aiuto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.