web-dev-qa-db-de.com

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

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

wp-json/wp/v2/categories? page = 1 >> Zählen Sie, es ist ein guter Weg zu gehen. Aber obige Lösung zu verwenden ist in Bezug auf die Geschwindigkeit keine gute Sache und ich weiß nicht, wie ich alle Kategorien auf einmal erreichen kann. (Wenn Sie es wissen, wäre es sehr hilfreich, wenn Sie es teilen.) Gibt es eine Möglichkeit/tutorial/... mir zu ermöglichen, die Anzahl der Posts in einem Hauptanruf hinzuzufügen? Diese Route gefällt mir: wp-json/wp/v2/posts ....

9
mil

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

FÜR POSTS: Sie können einen Aufruf an den Posts-Endpunkt der REST-API tätigen

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

Der Wert für die Anzahl der Posts wird in der Kopfzeile alsX-WP-Totalzurückgegeben. 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 begrenzen, damit Sie nicht alle Ihre WordPress-Posts abrufen, 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

Alles, was Sie tun müssen, ist eine GET-Anfrage an den Kategorien-Endpunkt zu richten:

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

Dies würde alle Kategorien zurückgeben und auch die Gesamtanzahl der Kategorien kann in derX-WP-Total-Header gefunden werden.

18
Tunji

Falls nicht klar ist, wie auf den Header (mit der Anzahl der Posts) aus der Ajax-Anforderung zugegriffen werden soll, gehen Sie wie folgt mit jQuery .get vor. Der Schlüssel ist, dass die Rückruffunktion einen optionalen Parameter enthält, der die Anfrage enthält, einschließlich der 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
});
4
mgtech

Versuchen Sie, einen Teil Ihrer Frage zu beantworten. Anzahl der Post-WP-Rest-API v2, die in den Kopfzeilen zurückgegeben wurden. Sie können Wert so etwas bekommen:

headers('X-WP-Total')

Anzahl der Beiträge pro Seite:

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

Ich habe stundenlang gesucht, um die Anzahl der Posts mit der WP REST API zu erhalten, sogar mit v2 über Google und WordPress oder die offiziellen Dokumente der Bibliothek, aber leider nichts gefunden.

Also habe ich versucht, Beiträge mit zunehmender Seitenzahl zu erhalten, bis die zurückgegebene JSON-Array-Länge 0 wird, was bedeutet, dass es keine Seite mehr mit Beiträgen in der Kategorie gibt, und habe aufgehört, die Seitenzahl zu erhöhen.

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

Ich hoffe es hilft.

0
Sdghasemi