WordPress REST API-Leitfaden 2025: Verstehen, einrichten und verwenden
WordPress REST API ist eine Schnittstelle, die es dem Content Management System (CMS) ermöglicht, Daten mit Diensten von Drittanbietern auszutauschen. Sie ermöglicht den Zugriff auf Inhalte direkt aus der Datenbank, was zu einer nahtlosen Integration führt.
In diesem WordPress REST API-Tutorial wird erklärt, wie dieses Tool funktioniert und wie man es verwendet. Sie werden auch Beispiele für die häufige Verwendung und bewährte Verfahren für eine effiziente Entwicklung kennenlernen.
Inhaltsverzeichnis
Was ist die WordPress REST API?
Die WordPress REST API ist eine Schnittstelle, über die Sie das CMS mit anderen Anwendungen von Drittanbietern integrieren können. Sie ermöglicht es Ihnen, Software oder Websites zu entwickeln, die die Daten, Funktionen und Inhalte von WordPress nutzen, ohne dass Sie direkt darauf zugreifen müssen.
Die WordPress REST API stellt Endpoints für den Abruf und die Bearbeitung von Inhalten als JSON-Daten bereit, um die Kompatibilität unabhängig von den Programmiersprachen zu gewährleisten.
Zu den Anwendungsfällen der REST-API gehört die Entwicklung einer benutzerdefinierten Anwendung, die die Daten oder Funktionen des CMS nutzt. Sie können zum Beispiel ein Headless WordPress einrichten, um eine Website zu erstellen, die auf einem modernen Framework wie React über dem Admin-Dashboard basiert.
Ein weiterer Anwendungsfall ist die Verwendung der REST-API für die Verwaltung eines WooCommerce-Shops. Sie können Aufgaben der Bestandsverwaltung automatisieren,
So funktioniert die WordPress REST API
Eine Anwendungsprogrammierschnittstelle (API) bietet eine Reihe von Regeln, die es zwei Webdiensten ermöglichen, miteinander zu kommunizieren. REST steht für „Representational State Transfer”, einen architektonischen Standard, der eine solche Kommunikation definiert.
Eine Webanwendung, die sich an die REST-Grundsätze hält, gilt als RESTful. Sie muss zum Beispiel eine einheitliche Schnittstelle verwenden, die einen einzigen Zugangspunkt bietet, über den andere Anwendungen auf ihre Daten zugreifen können.
Um Daten auszutauschen, sendet die REST-API der WordPress-Datenbank eine „Request”, d. h. eine Reihe von Anweisungen, die die von Ihrer Anwendung benötigten Informationen enthalten. Im Gegenzug sendet sie eine Antwort mit dem Inhalt und einer Bestätigung, ob der Vorgang erfolgreich war.
Ihre Anwendung oder Ihr Client verwendet „Routes”, um zu bestimmen, welche Daten abgerufen werden sollen. Dabei handelt es sich um URLs, die bestimmte Inhalte über die WP REST API auffinden, wie WordPress-Posts oder Metadaten. Mit der folgenden URL können Sie zum Beispiel auf Seiten zugreifen:
http://domain.tld/wp-json/wp/v2/pages
Diese Routes greifen auf die „Endpoint”-Funktionen in der WP REST API zu, die die angeforderten Daten bearbeiten. Sie können die Informationen abrufen, hinzufügen, bearbeiten oder entfernen, abhängig von den Hypertext Transfer Protocol (HTTP)-Methoden:
- GET – holt Daten vom Server ab.
- POST – fügt neue Daten in die Datenbank ein.
- PUT – modifiziert bestehende Daten.
- DELETE – entfernt den Inhalt aus der Datenbank.
Alle abgerufenen Daten werden im JSON-Format angezeigt, d.h. Sie müssen sie parsen, bevor Sie sie an einen anderen Code weitergeben.
So richten Sie Ihre Umgebung für die WordPress REST API ein
Die REST-API-Funktionalität ist in der WordPress-Installation standardmäßig aktiviert. Nachdem Sie ein WordPress-Hostingpaket erworben und das CMS eingerichtet haben, rufen Sie den folgenden Link auf, um zu überprüfen, ob die REST API aktiviert ist:
http://domain.tld/wp-json/
Denken Sie daran, domain.tld durch Ihre eigene Website-Adresse zu ersetzen. Wenn Sie eine Liste von Endpoints sehen, ist die WordPress REST API aktiv. Beachten Sie, dass diese Funktion nur für WordPress 4.7 oder höher verfügbar ist.
Experten-Tipp
Wir empfehlen, eine lokale Testumgebung für Ihre WordPress-Entwicklungsaktivitäten einzurichten, um mögliche Fehlkonfigurationen oder unerwünschte Fehler zu vermeiden, die die Verfügbarkeit der Website oder die Benutzerfreundlichkeit beeinträchtigen könnten.
Installieren Sie nun das cURL-Dienstprogramm in der Befehlszeilenschnittstelle (CLI, „Command Line Interface”) Ihres lokalen Rechners, z. B. Command Prompt oder Terminal. Damit können Sie zu Testzwecken Anfragen vom WordPress-Server senden und empfangen.
Als nächstes installieren Sie den WordPress REST API Basic Auth-Handler, um Ihre Verifizierungsmethode zu konfigurieren. Damit können Sie auf private Daten zugreifen, für die administrative Rechte erforderlich sind.
Nach der Installation des Plugins können wir beginnen, HTTP-Anfragen über die WordPress REST API zu senden. Dazu öffnen Sie WP-CLI und verbinden sich über SSH mit Ihrer Website. Hostinger-Nutzer finden die Zugangsdaten unter hPanel → Website-Verwaltung → Erweitert → SSH-Zugang.
Lassen Sie uns versuchen, auf eingeschränkte Daten zuzugreifen, um zu überprüfen, ob die WP REST API-Authentifizierung ordnungsgemäß funktioniert.
Wir führen zum Beispiel die folgende Eingabeaufforderung in der Befehlszeilenanwendung des lokalen Systems aus, um unveröffentlichte Beiträge abzurufen:
curl -X GET --user username:password -i http://domain.tld/wp-json/wp/v2/posts?status=draft
Verwendung der WordPress REST API
Nachdem Sie Ihre Hosting- und Testumgebung eingerichtet haben, können wir mit der Verwendung der WordPress REST API beginnen. Hier sind einige der alltäglichen Anwendungsfälle:
Wichtig! Bevor Sie fortfahren, stellen Sie sicher, dass Sie die API-Aufrufmethoden und das JSON-Format verstehen, um die Rohdaten schneller interpretieren zu können.
1. Daten mit GET-Anforderungen abrufen
Verwenden Sie die GET-Methode, um Daten von Ihrer WordPress-Website über JSON REST API abzurufen. Zum Beispiel werden wir Inhalte vom Endpoint Posts abrufen:
GET http://domain.tld/wp-json/wp/v2/posts/
Diese API-Anfrage gibt alle Beiträge Ihrer WordPress-Website aus, einschließlich Details wie ID, Inhalt und Titel. Wenn Sie sie mit cURL ausführen, sollte die Ausgabe wie unten gezeigt aussehen.
Sie können die Seiten auch über den entsprechenden Endpoint abrufen:
GET http://domain.tld/wp-json/wp/v2/pages/
Die Ausgabe ist ähnlich, aber der Befehl ruft alle Seiten anstelle von Beiträgen ab. Sie können auch Eigene Beitragstypen abfragen, indem Sie deren Namen im Endpoint angeben:
GET http://domain.tld/wp-json/wp/v2/custom-post-type/
Verwenden Sie zum Beispiel die folgende Eingabeaufforderung, um Produktseiten – benutzerdefinierte Beiträge – abzurufen:
GET http://domain.tld/wp-json/wp/v2/product-page
Wichtig! Denken Sie daran, cURL zu verwenden, um REST-API-Anfragen über WP-CLI zu testen. Verwenden Sie für den eigentlichen Anwendungscode stattdessen Funktionen oder Bibliotheken wie JavaScript’s Fetch.
Sie können einen Abfrageparameter verwenden, um die Ausgabe zu ändern, z. B. durch Paginierung oder Sortierung der Daten. Verwenden Sie zum Beispiel den folgenden Endpoint, um Beiträge nach ihrem Erstellungsdatum in aufsteigender Reihenfolge zu sortieren:
/wp-json/wp/v2/posts?orderby=date&order=desc
In der Zwischenzeit können Sie mit den page- und per_page-Abfrageparametern eine bestimmte Anzahl von Beiträgen von einer bestimmten Seite abrufen. Hier ist ein Beispiel:
/wp-json/wp/v2/posts?page=2&per_page=10
Unter Verwendung des Endpoints gruppiert die GET-Methode die Beiträge in mehrere Seiten, die jeweils 10 Einträge enthalten, und ruft die zweite Seite ab.
WordPress bietet verschiedene andere Abfrageparameter, um Daten nach bestimmten Kriterien zu filtern. Um mehr über sie zu erfahren, lesen Sie die Dokumentation über Posts REST API-Referenzen.
2. Inhalte mit POST-Anfragen erstellen
Mit der POST-Methode können Sie der WordPress-Datenbank unter Verwendung eines bestimmten Endpoints neue Inhalte hinzufügen. Verwenden Sie zum Beispiel die folgende Aufforderung, um einen leeren Beitrag zu erstellen:
POST http://domain.tld/wp-json/wp/v2/posts/
Sie können auch neue Seiten oder benutzerdefinierte Post-Einträge erstellen, indem Sie die entsprechenden WordPress-REST-API-Endpoints wie folgt verwenden:
POST http://domain.tld/wp-json/wp/v2/pages/
POST http://domain.tld/wp-json/wp/v2/custom-post-types/
Um einen korrekten Eintrag mit einem Titel, Veröffentlichungsstatus und Inhalt zu erstellen, müssen Sie diese Details im Code Ihrer Anwendung angeben.
Außerdem erfordert die WordPress REST API POST-Anfrage in der Regel administrative Rechte. Wenn Sie Authentifizierungsmethoden wie die offene Authentifizierung (OAuth) verwenden, müssen Sie das Verifizierungs-Token hinzufügen.
Sie sollten auch eine Antwortvalidierung hinzufügen, damit Ihre Anwendung bestätigen kann, ob die POST-API-Anforderung erfolgreich war.
3. Inhalte aktualisieren und löschen
Mit der PUT-Methode der WordPress REST API können Sie einen bestimmten Beitrag, eine Seite oder einen benutzerdefinierten Beitragseintrag mithilfe seiner ID ändern. So können Sie beispielsweise neue Inhalte einfügen oder den Veröffentlichungsstatus ändern.
Die Syntax ist ähnlich wie bei anderen API-Aufrufmethoden, jedoch steht die Post-ID am Ende der Route:
PUT http://domain.tld/wp-json/wp/v2/posts/ID
Geben Sie dann die Daten an, die Sie ändern möchten. Um beispielsweise neue Inhalte einzufügen, fügen Sie die folgende Zeile ein:
{
"content" = "publish"
}
Beim Löschen von Beiträgen, Seiten oder benutzerdefinierten Einträgen wird auch deren ID verwendet, wie im folgenden Beispiel:
DELETE http://domain.tld/wp-json/wp/v2/posts/ID
Standardmäßig verschiebt die DELETE-Methode Daten in den Papierkorb, so dass Sie sie bei Bedarf später wiederherstellen können. Für eine dauerhafte Löschung fügen Sie den force-Parameter wie folgt hinzu:
DELETE http://domain.tld/wp-json/wp/v2/posts/567?force=true
Warnung! Wir empfehlen, das Argument force möglichst zu vermeiden, da es zu einem versehentlichen Datenverlust führen kann.
4. Mit benutzerdefinierten Endpoints arbeiten
Die WordPress REST API bietet mehrere Standard-Endpoints mit vordefinierten Funktionen. Diese sind jedoch möglicherweise unzureichend, wenn Ihre Anwendung spezifische Daten benötigt.
Sie können zwar die Ausgaben von Standard-Endpoints mit Filtern oder Abfrageparametern anpassen, aber der Prozess ist aufgrund des zusätzlichen Codes ineffektiv. Außerdem kann es schwierig sein, zusätzliche Inhalte wie Formularübermittlungen abzurufen.
Um den Datenzugriff für bestimmte Anforderungen zu vereinfachen, erstellen Sie benutzerdefinierte Endpoints in WordPress. Sie können dies tun, indem Sie die functions.php Ihres Themes über den Theme-Datei-Editor ändern oder ein eigenes WordPress-Plugin erstellen.
Fügen Sie das folgende Codesnippet hinzu, um einen benutzerdefinierten Endpoint zu registrieren, einschließlich seiner Route, Callback-Funktion und Abfragemethode:
add_action( 'rest_api_init', function () {
register_rest_route( 'your_namespace/v1', '/your_endpoint/', array(
'methods' => 'GET',
'callback' => 'your_endpoint_callback',
) );
} );
Geben Sie dann die Callback-Funktion an, die beim Zugriff auf den Endpoint ausgelöst werden soll. Sie verarbeitet die Daten und gibt die angeforderte Antwort zurück.
function your_endpoint_callback( $data ) {
// Your logic to handle the request like returning a JSON response
return array( 'message' => 'Your custom endpoint works!' );
}
Ihre WordPress-Website verfügt beispielsweise über Formulare, deren Eingaben als benutzerdefinierte Einträge registriert sind. Sie können einen benutzerdefinierten Endpoint erstellen, mit dem Sie die Einträge abrufen können, indem Sie das folgende Codesnippet hinzufügen:
add_action( 'rest_api_init', function () {
register_rest_route( 'custom/v1', '/form-submissions', array(
'methods' => 'GET',
'callback' => 'get_form_submissions',
) );
} );
function get_form_submissions() {
$args = array(
'post_type' => 'form_submission',
'posts_per_page' => -1,
);
$form_submissions = get_posts( $args );
$response = array();
foreach ( $form_submissions as $submission ) {
$response[] = array(
'id' => $submission->ID,
'title' => $submission->post_title,
'content' => $submission->post_content,
'author' => $submission->post_author,
'created_at' => $submission->post_date,
// Add more fields as needed
);
}
return $response;
}
Die Funktion get_posts durchläuft die Beiträge, auf die Sie dann mit der Methode GET zugreifen können:
GET http://domain.tld/wp-json/custom/v1/form-submissions
5. Authentifizierung auswählen
Die WordPress REST API-Authentifizierung gewährleistet eine sichere Datenübertragung mit gültigen Clients. Die Benutzer können je nach den Anforderungen ihrer Anwendung verschiedene Mechanismen implementieren.
WordPress verwendet standardmäßig die Cookie-Authentifizierung. Sie weist eingeloggten Benutzern Authentifizierungs-Cookies zu, die in den Request-Header für nachfolgende API-Aufrufe aufgenommen werden. Diese Methode ist einfach, aber ungeeignet für Webdienste von Drittanbietern, die eine Authentifizierung außerhalb von WordPress erfordern.
Eine andere Methode ist OAuth, die ein Authentifizierungs-Token verwendet, um Anfragen von Ihrem Webdienst zu validieren. Da sie keine Benutzeranmeldeinformationen verwendet, bietet sie mehr Flexibilität und Zuverlässigkeit. Allerdings wirkt der Einrichtungsprozess für einige möglicherweise kompliziert.
Um OAuth zu konfigurieren, verwenden Sie das offizielle Plugin aus dem WordPress REST API GitHub Repository. Wir empfehlen außerdem OAuth 2.0, da es einfacher zu implementieren und skalierbarer ist und eine neuere Architektur als Version 1.0 verwendet.
WordPress REST API-Beispiele
Die WordPress REST API ist für verschiedene Webentwicklungsaufgaben und Anwendungen hilfreich. Sie können zum Beispiel Beiträge aus dem CMS abrufen und sie auf anderen Websites zur Verteilung von Inhalten anzeigen.
Ein weiterer Anwendungsfall ist die Übermittlung von Daten von einer bestehenden statischen Website an das WordPress-Backend. Dies vereinfacht den Entwicklungsprozess, da Sie die Fähigkeiten des CMS zur Speicherung der Daten nutzen können, anstatt eine Datenbank manuell zu konfigurieren.
Mit der WordPress-API-Integration können Sie die Inhalte Ihrer Website auch automatisch aktualisieren. So können Sie beispielsweise mit der PUT-Methode Beiträge aus den Apple News auf Ihre Website übertragen, ohne sich anzumelden.
Ein fortgeschrittener Anwendungsfall für die REST-API ist die Erstellung eines Headless CMS. So können Sie z. B. auf Nachrichten ausgerichtete mobile Anwendungen erstellen, die das WordPress-Dashboard für die Verwaltung von Inhalten nutzen.
Zu den realen Anwendungen der API gehört das Abrufen bestimmter Beitragsdaten aus der Datenbank für den Block-Editor. Ein weiteres Beispiel ist die Anzeige von Google Maps auf WordPress-Seiten mithilfe von Plugins.
Bewährte Verfahren für die Verwendung der WordPress REST API
Um die WordPress REST API-Funktion für die Webentwicklung und -integration effizient zu nutzen, sollten Sie die folgenden Bewährten Verfahren beachten.
Richten Sie die richtige Authentifizierung ein
Die Einrichtung einer ordnungsgemäßen Authentifizierung verbessert die Sicherheit der WordPress-REST-API und gewährleistet, dass nur autorisierte Benutzer oder Anwendungen auf sensible Daten zugreifen können.
Sie trägt dazu bei, Sicherheitslücken zu minimieren und unbefugten Zugriff und Datenverletzungen zu verhindern. Um die beste Methode zu wählen, sollten Sie die Skalierbarkeit, die einfache Implementierung und Ihre Anforderungen berücksichtigen.
Bereinigen Sie die Eingaben
Die Bereinigung von Eingaben in der WordPress REST API ist wichtig, insbesondere wenn mit öffentlichen Daten gearbeitet wird, auf die alle Benutzer zugreifen können. Dazu gehört die Validierung und Bereinigung von Eingaben aus externen Quellen, um zu verhindern, dass bösartiger Code in das CMS eindringt.
Es hilft auch, Ihr WordPress vor Sicherheitsschwachstellen wie SQL-Injection und Cross-Site-Scripting (XSS) zu schützen.
WordPress bietet integrierte Funktionen zur Bereinigung von Eingabedaten, wie ;sanitize_text_field(), sanitize_email() und sanitize_url(). Fügen Sie sie in den Code Ihrer Anwendung für diejenigen ein, die den abgerufenen Inhalt empfangen und analysieren sollen.
Nutzen Sie Caching
Caching trägt zur Optimierung der Leistung und Skalierbarkeit Ihrer WordPress-Website bei. Es reduziert die Serverlast und verbessert die Antwortzeiten, indem es häufig abgerufene Daten im Speicherplatz speichert, sodass Clients und die API die Daten schneller abrufen können.
Die Minimierung der Serverlast trägt auch dazu bei, die Betriebszeit der WordPress-API bei Trafficspitzen aufrechtzuerhalten. Wenn zu viele Clients gleichzeitig Anfragen senden, ist die Datenbank möglicherweise nicht in der Lage, diese zu verarbeiten, was zu Ausfallzeiten führt.
Es gibt verschiedene WordPress-Caching-Lösungen und Plugins, darunter LiteSpeed Caching und W3 Total Cache.
Minimieren Sie Requests und Code
Um die Leistung Ihrer Anwendung und von WordPress zu verbessern, sollten Sie so wenige API-Aufrufe wie möglich verwenden. Sie können auch zusammenhängende Anfragen für eine bestimmte Aufgabe bündeln und sie gleichzeitig senden, um die Hin- und Her-Kommunikation zu minimieren.
Vermeiden Sie außerdem redundante Vorgänge, um Ihren Code effizient und kurz zu halten. Dadurch wird nicht nur der Ressourcenverbrauch minimiert, sondern auch die Wartbarkeit und Skalierbarkeit verbessert.
Halten Sie die gesamte Software auf dem neuesten Stand
Achten Sie darauf, Ihre WordPress-Kerndateien, Plugins, Themes und jede andere Software, die Sie auf Ihrer Website verwenden, regelmäßig zu aktualisieren, damit alles reibungslos funktioniert. So erhalten Sie garantiert die neuesten Funktionen, so dass beide Webdienste nahtlos integriert werden können.
Durch die Verwendung der neuesten Versionen werden auch die neuesten Sicherheitspatches und Fehlerbehebungen angewendet, um die Benutzerfreundlichkeit zu erhalten. Wir empfehlen außerdem, WordPress-Newsletter und -Blogs zu abonnieren, um sich über die neuesten Updates zu informieren.
Fazit
Die WordPress REST API ist eine Funktion, mit der Ihr CMS nahtlos mit Webdiensten von Drittanbietern interagieren kann. Sie wird üblicherweise verwendet, um Anwendungen mit WordPress-Inhalten zu entwickeln oder ein Headless CMS zu erstellen.
Die REST-API ist im WordPress-Kern standardmäßig aktiviert. Sie können sie testen, indem Sie eine Anfrage mit cURL über WP-CLI senden. Geben Sie dazu die HTTP-Methode und die Route an, um auf einen Endpoint zuzugreifen, der als Funktion zur Änderung von Daten fungiert.
Verwenden Sie die GET-Methode, um Daten wie einen WordPress-Post in Ihre Anwendung zu holen. In der Zwischenzeit verwenden Sie den Befehl POST, um Inhalte zu pushen, PUT, um einen bestehenden Eintrag zu ändern, und DELETE, um eine Ressource zu entfernen.
Stellen Sie bei der Verwendung dieser Funktion sicher, dass Sie eine angemessene Authentifizierung wie OAuth oder Basic Auth anwenden. Halten Sie Ihren Code übersichtlich und nutzen Sie das Caching, um die Leistung der WordPress REST API auch bei hoher Last aufrechtzuerhalten.
WordPress REST API FAQ
In diesem Abschnitt werden einige häufig gestellte Fragen zur WordPress REST API behandelt, um Ihnen ein besseres Verständnis für das Thema zu vermitteln.
Was sind die Vorteile der WordPress REST API?
Mit der JSON REST API können Sie WordPress mit anderen Webdiensten integrieren. Sie ermöglicht den direkten Zugriff auf die Daten und Funktionen des CMS, ohne dass die Benutzer direkt mit dem Dashboard interagieren müssen.
Wie erhalte ich Daten von der WordPress REST API?
Um Daten von der WordPress REST API abzurufen, schreiben Sie einen Code, der eine HTTP-Anfrage an einen Endpoint mit der GET-Methode sendet. Sie können Tools verwenden, die HTTP unterstützen, z. B. Fetch von JavaScript oder cURL in WP-CLI. Dann parsen Sie die JSON-Daten entsprechend der Programmiersprache Ihrer Anwendung.
Gibt es irgendwelche Einschränkungen bei der Arbeit mit der WordPress REST API?
Ja. Die maximale Anzahl von Beiträgen pro Seite, die Sie über die REST-API abrufen können, beträgt 100. Außerdem erfordert das Abrufen von Inhalten über die API mehr Rechenleistung als eine direkte Datenbankabfrage, was zu Leistungsproblemen führen kann.
Wer sollte lernen, wie man die WordPress-REST-API verwendet?
Angehende WordPress-Entwickler, die eine Anwendung oder einen Webdienst erstellen möchten, der die CMS-Funktionalität nutzt, sollten die REST-API erlernen. Auch für Benutzer, die ein WordPress-CMS ohne Kopfzeile entwickeln oder ihre Inhalte auf eine andere Plattform migrieren möchten, ist es unerlässlich.