Holen Sie sich die Anzahl der Beiträge in der wp rest API v2 und holen Sie sich alle Kategorien

9

Ich möchte die Anzahl meiner Beiträge erhalten. Ich denke verwenden

wp-json / wp / v2 / category? page = 1 >> zählen, es ist ein guter Weg. Aber die obige Lösung zu verwenden ist in Bezug auf die Geschwindigkeit keine Tasse Tee und ich weiß nicht, wie ich alle Kategorien mit einem Anruf erhalten kann (wenn Sie wissen, dass es so hilfreich wäre, wenn Sie es teilen). Gibt es eine Möglichkeit / Tutorial / ... mir zu ermöglichen, die Anzahl der Beiträge in einem Hauptanruf hinzuzufügen? wie diese Route: wp-json / wp / v2 / posts ....

mil
quelle

Antworten:

21

Die WP Rest-API sendet die Eigenschaft total count ( found_posts ) von WP_Query. in einem Header aufgerufen X-WP-Total.

FÜR POSTS: Sie können den Post-Endpunkt der REST-API aufrufen

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

Der Wert für die Anzahl der Beiträge wird in der Kopfzeile als zurückgegeben X-WP-Total. Unten finden Sie eine Beispielantwort von der gehosteten Demo

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

HINWEIS:

Sie können auch die Anzahl der Posts pro Seite, die Sie abrufen, auf 1 beschränken, damit Sie nicht alle WordPress-Posts erhalten, nur um die Anzahl der Posts zu ermitteln

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

Um alle Kategorien zu erhalten

Sie müssen lediglich eine GET-Anfrage an den Endpunkt der Kategorie senden unter:

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

Dies würde alle Kategorien zurückgeben und auch die Gesamtzahl der Kategorien kann in der X-WP-TotalKopfzeile gefunden werden.

Tunji
quelle
6

Falls nicht klar ist, wie über die Ajax-Anforderung tatsächlich auf den Header (mit der Anzahl der Beiträge) zugegriffen werden soll, gehen Sie wie folgt mit jQuery .get vor. Der Schlüssel ist, dass die Rückruffunktion einen optionalen Parameter hat, der die Anforderung enthält, die die Header enthält.

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

Versuchen Sie, einen Teil Ihrer Frage zu beantworten. Anzahl der Post-WP-Rest-API v2, die in den Headern zurückgegeben wurden. Sie können einen Wert wie diesen erhalten:

headers('X-WP-Total')

Beiträge pro Seite zählen:

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

Ich habe stundenlang nach der Anzahl der Beiträge mit der WP REST API gesucht, sogar v2 über Google und WordPress oder die offiziellen Dokumente der Bibliothek, aber leider nichts gefunden.

Daher habe ich versucht, Beiträge mit zunehmender Seitenzahl abzurufen, bis die zurückgegebene JSON-Array-Länge 0 wird. Dies bedeutet, dass keine Seite mehr mit Beiträgen in der Kategorie vorhanden ist, und die Erhöhung der Seitenzahl gestoppt.

Wenn Sie jedoch mit der WP REST-API eine beliebige Anzahl von Posts pro Seite erhalten möchten, können Sie filter[posts_per_page]={$numberOfPosts}beim Senden der Anforderung problemlos Parameter verwenden.

Ich hoffe es hilft.

Sdghasemi
quelle