Obtenez le nombre de messages dans wp rest API v2 et obtenez toutes les catégories

10

Je veux obtenir le nombre de mes messages. Je pense utiliser

wp-json / wp / v2 / categories? page = 1 >> compter c'est une bonne façon de procéder. Mais utiliser la solution ci-dessus n'est pas une tasse de thé en termes de vitesse et je ne sais pas comment obtenir toutes les catégories en un seul appel (si vous savez que ce serait si utile si vous la partagez). existe-t-il un moyen / tutoriel / ... me permettre d'ajouter le nombre de messages dans un appel principal? comme cet itinéraire: wp-json / wp / v2 / posts ....

mil
la source

Réponses:

21

L'API WP Rest envoie la propriété count total ( found_posts ) à partir de WP_Query. dans un en-tête appelé X-WP-Total.

POUR LES POSTS: vous pouvez faire un appel au point de terminaison posts de l'API REST

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

La valeur du nombre de publications est renvoyée dans l'en-tête sous la forme X-WP-Total. Voici un exemple de réponse de la démo hébergée

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

REMARQUE:

Vous pouvez également limiter les publications par page que vous récupérez à 1 afin de ne pas obtenir toutes vos publications wordpress juste pour obtenir le nombre de publications

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

Pour obtenir toutes les catégories

Tout ce que vous avez à faire est de faire une demande GET au point de terminaison des catégories à:

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

Cela renverrait toutes les catégories et le nombre total de catégories peut également être trouvé dans l'en- X-WP-Totaltête.

Tunji
la source
7

Dans le cas où il n'est pas clair comment accéder réellement à l'en-tête (avec le nombre de messages) à partir de la demande Ajax, voici comment le faire avec jQuery .get. La clé est que la fonction de rappel a un paramètre facultatif contenant la demande, qui inclut les en-têtes.

$.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
la source
1

Essayez de répondre à une partie de votre question. Nombre d'api v2 rest wp rest retourné dans les en-têtes. Vous pouvez obtenir de la valeur quelque chose comme ceci:

headers('X-WP-Total')

Compter les publications par page:

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

J'ai passé des heures à chercher à obtenir le nombre de publications avec WP REST API même v2 via Google et WordPress ou les documents officiels de la bibliothèque, mais malheureusement, je n'ai rien trouvé.

J'ai donc essayé d'obtenir des publications avec un nombre de pages croissant jusqu'à ce que la longueur du tableau JSON renvoyée devienne 0, ce qui signifie qu'il n'y a plus de page avec des publications dans la catégorie, et j'ai cessé d'augmenter le nombre de pages.

Mais si vous souhaitez obtenir un nombre arbitraire de publications par page avec l'API WP REST, vous pouvez facilement utiliser le filter[posts_per_page]={$numberOfPosts}paramètre lors de l'envoi de la demande.

J'espère que cela aide.

Sdghasemi
la source