Leitfaden zur WordPress REST API

Was ist die WordPress REST API
Die WordPress REST API ist eine Schnittstelle, die es externen Anwendungen ermöglicht, mit einer WordPress-Website über HTTP-Anfragen zu kommunizieren. Anstatt über das WordPress-Frontend oder den Adminbereich auf Inhalte zuzugreifen, ermöglicht Ihnen die REST API, Inhalte programmatisch zu lesen, zu erstellen, zu aktualisieren und zu löschen, indem Sie standardmäßige HTTP-Methoden (GET, POST, PUT, DELETE) und das JSON-Format für den Datenaustausch verwenden.
Die REST API ist seit Version 4.7 (Dezember 2016) in WordPress integriert und stellt eine moderne Art der Interaktion mit WordPress dar. Sie wird für mobile Apps verwendet, die WordPress-Inhalte anzeigen, für JavaScript-Frontends (React, Vue, Angular), die WordPress als Backend verwenden, für Integrationen mit externen Diensten und zur Automatisierung der Inhaltsverwaltung. Der Gutenberg-Editor, der seit Version 5.0 der Standard-WordPress-Editor ist, nutzt die REST API intensiv für alle Inhaltsoperationen. Wenn Sie gerade erst beginnen, sehen Sie sich unseren Leitfaden zur Installation von WordPress an.
Grundlagen der REST API
Endpoints und Routen
Die WordPress REST API ist auf Ihrer Website unter dem Pfad /wp-json/ verfügbar. Mit einem Browser oder Tools wie cURL oder Postman können Sie auf die API zugreifen. Beispielsweise gibt eine GET-Anfrage an /wp-json/wp/v2/posts eine Liste von Beiträgen im JSON-Format zurück, /wp-json/wp/v2/pages gibt Seiten zurück, /wp-json/wp/v2/categories gibt Kategorien zurück, /wp-json/wp/v2/users gibt Nutzer zurück, /wp-json/wp/v2/media gibt Mediendateien zurück, und /wp-json/wp/v2/comments gibt Kommentare zurück. Jeder dieser Endpoints unterstützt verschiedene HTTP-Methoden für verschiedene Operationen – GET zum Lesen, POST zum Erstellen, PUT/PATCH zum Aktualisieren und DELETE zum Löschen.
Abfrageparameter
Die REST API unterstützt zahlreiche Parameter zur Filterung und Paginierung von Ergebnissen. Der Parameter per_page steuert die Anzahl der Ergebnisse pro Seite (Standard 10, Maximum 100), page gibt die Ergebnisseite für die Paginierung an, search durchsucht Inhalte nach Stichwörtern, orderby definiert das Sortierfeld (date, title, id), order definiert die Sortierrichtung (asc oder desc), und categories und tags filtern nach Kategorie oder Tag. Beispielsweise gibt die Anfrage /wp-json/wp/v2/posts?per_page=5&categories=3&orderby=date&order=desc die 5 neuesten Beiträge aus der Kategorie mit der ID 3 zurück.
Antwortstruktur
Die API gibt Daten im JSON-Format zurück. Jedes Beitragsobjekt enthält id (eindeutiger Identifikator), title mit rendered-Eigenschaft (Titel mit HTML-Formatierung), content mit rendered-Eigenschaft (Beitragsinhalt), excerpt mit rendered-Eigenschaft (Auszug), date (Veröffentlichungsdatum im ISO-8601-Format), slug (URL-freundlicher Titel), status (publish, draft, pending), author (Autor-ID), categories und tags (Arrays von IDs). HTTP-Antwort-Header enthalten nützliche Metadaten: X-WP-Total (Gesamtanzahl der Einträge) und X-WP-TotalPages (Gesamtanzahl der Seiten).
Authentifizierung
Öffentliche vs. geschützte Endpoints
Einige Endpoints sind ohne Authentifizierung öffentlich zugänglich – das Lesen veröffentlichter Beiträge, Seiten, Kategorien und Tags. Operationen, die Daten ändern (Erstellen, Aktualisieren, Löschen), und der Zugriff auf private Daten erfordern eine Authentifizierung. Die WordPress REST API unterstützt je nach Nutzungskontext mehrere Authentifizierungsmethoden.
Application Passwords
Seit WordPress 5.6 sind Application Passwords im Core integriert und stellen die einfachste Methode zur Authentifizierung externer Anwendungen dar. Sie erstellen ein Application Password für einen Benutzer unter Users → Profile → Application Passwords. Das generierte Passwort wird mit HTTP Basic Authentication verwendet – Sie senden Benutzernamen und Application Password im Authorization-Header jeder Anfrage. Application Passwords haben den Vorteil, dass sie einzeln widerrufen werden können, ohne das Hauptpasswort des Benutzers zu ändern.
JWT-Authentifizierung
JSON Web Token (JWT) ist eine beliebte Authentifizierungsmethode in Single-Page-Anwendungen und mobilen Apps. WordPress hat keine integrierte JWT-Unterstützung, aber Plugins wie JWT Authentication for WP REST API oder Simple JWT Login fügen diese Funktionalität hinzu. Der Client sendet Benutzernamen und Passwort an den Token-Endpoint, erhält einen JWT-Token, den er dann im Authorization-Header als Bearer-Token bei jeder Anfrage sendet. JWT-Token haben eine begrenzte Lebensdauer und können ohne erneutes Senden des Passworts erneuert werden.
OAuth 2.0
OAuth 2.0 ist der Industriestandard für Autorisierung, der Dritten den Zugriff auf Ressourcen ohne Passwort-Sharing ermöglicht. WordPress unterstützt OAuth über das Plugin OAuth Server. OAuth ist ideal für Anwendungen, die im Namen des Nutzers auf WordPress-Inhalte zugreifen – der Nutzer autorisiert die Anwendung über die WordPress-Login-Seite, die Anwendung erhält ein Access Token und verwendet es für API-Aufrufe. Dies ist die sicherste Methode für Produktionsanwendungen.
Erstellen benutzerdefinierter Endpoints
Register REST Route
WordPress ermöglicht das Erstellen benutzerdefinierter API-Endpoints für spezifische Anforderungen Ihrer Anwendung. Verwenden Sie die Funktion register_rest_route() im rest_api_init-Hook. Sie definieren einen Namespace (z. B. myplugin/v1), eine Route (z. B. /featured-posts), eine HTTP-Methode (GET, POST), eine Callback-Funktion, die Daten zurückgibt, und eine optionale permission_callback-Funktion zur Zugriffskontrolle. Benutzerdefinierte Endpoints sind nützlich für Daten, die komplexe Abfragen, Aggregationen oder Transformationen erfordern, die Standard-Endpoints nicht unterstützen.
Permission Callback
Die Permission-Callback-Funktion steuert, wer auf den Endpoint zugreifen darf. Für öffentliche Endpoints verwenden Sie __return_true. Für geschützte Endpoints prüfen Sie Benutzerberechtigungen mit der Funktion current_user_can(). Beispielsweise sollte der Endpoint zum Erstellen von Beiträgen current_user_can('publish_posts') prüfen. Lassen Sie Write-Endpoints niemals ohne Permission Callback, da dies die Website für Missbrauch öffnet.
Validierung und Sanitisierung von Parametern
Benutzerdefinierte Endpoints sollten Argumente mit Validierung und Sanitisierung definieren. Für jeden Parameter definieren Sie required (ob er obligatorisch ist), type (string, integer, boolean), validate_callback (Funktion, die die Gültigkeit des Werts prüft) und sanitize_callback (Funktion, die den Wert vor der Verwendung bereinigt). WordPress bietet integrierte Sanitize-Funktionen wie sanitize_text_field(), absint() und sanitize_email(). Ordnungsgemäße Validierung verhindert unerwartete Fehler und Sicherheitslücken.
Headless WordPress
Konzept eines Headless CMS
Headless WordPress ist eine Architektur, bei der WordPress nur als Backend (CMS) zur Inhaltsverwaltung verwendet wird, während die Frontend-Darstellung in einer völlig separaten Anwendung erfolgt. Die WordPress REST API dient als Brücke zwischen Backend und Frontend. Das Frontend kann in React, Vue.js, Next.js, Nuxt, Angular oder einem anderen Framework erstellt werden. Vorteile sind volle Kontrolle über das Frontend, bessere Leistung (statische Seiten anstelle des PHP-Renderings von WordPress), die Möglichkeit, denselben Inhalt auf einer Website, einer mobilen App und anderen Plattformen zu verwenden, und moderne Entwicklungserfahrungen (Hot Reloading, komponentenbasierte Architektur).
Next.js und WordPress
Die Kombination von Next.js und WordPress ist eine der beliebtesten Headless-Implementierungen. Next.js bietet Server-Side Rendering (SSR), Static Site Generation (SSG) und Incremental Static Regeneration (ISR), was zu außerordentlich schnellen Websites führt. Inhalte werden während des Builds (für SSG) oder auf Anfrage (für SSR) von der WordPress REST API abgerufen. Die Next.js Image-Komponente optimiert Bilder automatisch, und das Routing-System bildet WordPress-Slugs auf Seiten ab. Viele große Websites nutzen diese Kombination für Blog-Bereiche, während der Rest der Website Custom-Komponenten verwendet.
Herausforderungen des Headless-Ansatzes
Headless WordPress ist nicht ohne Herausforderungen. Sie verlieren WordPress-Themes und den visuellen Customizer – alles muss im Frontend-Framework programmiert werden. Plugins, die Frontend-Output generieren (Kontaktformulare, Galerien, Page-Builder), funktionieren im Headless-Modus nicht. Die Vorschau-Funktion erfordert zusätzliche Konfiguration. SEO-Plugins wie Yoast generieren Meta-Daten, aber das Frontend muss sie abrufen und ordnungsgemäß anzeigen. Kommentare, Suche und Paginierung müssen im Frontend mit API-Aufrufen implementiert werden. Der Headless-Ansatz erfordert ein Team mit Frontend-Entwicklungserfahrung.
Sicherheit der REST API
Zugriffsbeschränkung
Standardmäßig ist die WordPress REST API öffentlich zugänglich und gibt Informationen über Nutzer, Beiträge und Website-Struktur preis. Für Websites, die die API nicht nutzen, sollten Sie eine Zugriffsbeschränkung in Betracht ziehen. Sie können die REST API für nicht authentifizierte Nutzer mit dem rest_authentication_errors-Filter deaktivieren, bestimmte Endpoints blockieren (insbesondere /wp/v2/users, der Benutzernamen preisgibt) oder ein Plugin wie Disable WP REST API für die selektive Deaktivierung verwenden. Blockieren Sie die REST API niemals vollständig, wenn Sie den Gutenberg-Editor verwenden, da er von der API abhängt.
Rate Limiting
Eine REST API ohne Rate Limiting kann für Brute-Force-Angriffe, Inhalts-Scraping oder DDoS missbraucht werden. Implementieren Sie Rate Limiting auf Webserver-Ebene (Nginx limit_req-Modul, Apache mod_ratelimit) oder mit WAF-Regeln. Cloudflare Rate Limiting ist eine einfache Lösung – begrenzen Sie den /wp-json/-Endpoint auf eine angemessene Anzahl von Anfragen pro Minute (z. B. 60 für authentifizierte, 30 für nicht authentifizierte Nutzer).
Nützliche Tools für die Arbeit mit der REST API
- Postman: Grafisches Tool zum Testen von API-Aufrufen mit Unterstützung für alle HTTP-Methoden, Authentifizierung und Anfrage-Sammlungen.
- cURL: Kommandozeilen-Tool für HTTP-Anfragen – ideal für schnelles Testen und Scripting.
- Insomnia: Moderne Alternative zu Postman mit sauberer Oberfläche und GraphQL-Unterstützung.
- WP-CLI: WordPress-Kommandozeilen-Tool, das intern die REST API verwendet und die Website-Verwaltung über das Terminal ermöglicht.
- Thunder Client: VS Code-Erweiterung zum Testen der API direkt aus dem Editor.
Fazit
Die WordPress REST API eröffnet neue Möglichkeiten für die Nutzung von WordPress jenseits des traditionellen Blogs oder einer Website. Egal, ob Sie eine mobile App, ein JavaScript-Frontend erstellen oder WordPress mit anderen Systemen integrieren, die REST API bietet eine standardisierte und dokumentierte Möglichkeit zum Zugriff auf Inhalte. Für Headless-Projekte bietet die Kombination aus WordPress und einem modernen Frontend-Framework wie Next.js das Beste aus beiden Welten – einfache Inhaltsverwaltung und Spitzenleistung. Bei BeoHosting unterstützen alle Hosting-Pakete für WordPress die REST API mit optimierten PHP- und MySQL-Konfigurationen für schnellere API-Antworten.
BeoHosting Team
10+ Jahre Erfahrung — Spezialisten für Webhosting und Infrastruktur
- Web Hosting
- WordPress Hosting
- VPS
- Dedicated Serveri
- Domeni
- SSL
- cPanel
- LiteSpeed
- Linux administracija
- DNS
Zuletzt aktualisiert: