WordPress REST API ohne Plugin: So erstellst du eigene Endpunkte
16. August 2026
Lerne, wie du die WordPress REST API ohne Plugin nutzt: eigene Endpunkte, Authentifizierung & DSGVO-sichere Praxis.
Warum die REST API ohne Plugin?
Plugins wie „Custom REST Endpoints“ versprechen schnelle Ergebnisse, bringen aber oft unnötigen Ballast mit. Wer die WordPress REST API ohne Plugin nutzt, behält die volle Kontrolle über Code, Performance und Sicherheit. Gerade in Deutschland, wo DSGVO und schlanke Websites wichtig sind, lohnt sich eine eigene Lösung. Du vermeidest Abhängigkeiten, lernst die API besser kennen und kannst jeden Endpunkt exakt auf deine Bedürfnisse zuschneiden. Zudem ist es gar nicht schwer: Mit wenigen Zeilen PHP in functions.php oder in einem eigenen Theme-File stehen dir sämtliche Möglichkeiten offen. Du bestimmst Datenstrukturen, Berechtigungen und Cache-Verhalten selbst – und das ganz ohne Plugin.
Grundlagen: Die WordPress REST API verstehen
Die REST API ist seit WordPress 4.7 fester Bestandteil des Kernsystems. Sie erlaubt es, Inhalte wie Beiträge, Seiten oder benutzerdefinierte Beitragstypen über HTTP ausschließlich zu lesen und zu schreiben. Die Basis bilden Routen wie /wp-json/wp/v2/posts. Ohne Plugin kannst du diese Routen erweitern oder eigene hinzufügen. Dafür nutzt du die Klasse WP_REST_Server und die Funktion register_rest_route(). Der gesamte Datenaustausch erfolgt im JSON-Format. Ein wichtiger Vorteil: Du kannst die API für Headless-WordPress, React-Anwendungen oder mobile Apps nutzen. Verstehen musst du vor allem das Zusammenspiel von Requests, Response und Callbacks. Genau diese Grundlagen schauen wir uns nun anhand konkreter Beispiele an.
Eigene REST-Endpunkte registrieren – Schritt für Schritt
Um einen eigenen Endpunkt zu registrieren, öffnest du die functions.php deines Themes oder erstellst ein eigenes MU-Plugin. Ein einfaches Beispiel: add_action('rest_api_init', function() { register_rest_route('mein/v1', '/status', array('methods' => 'GET', 'callback' => 'mein_status_callback')); }); Die Funktion, die als Callback dient, liefert die gewünschten Daten als WP_REST_Response zurück. Entwickelst du einen Endpunkt für ein Suchformular oder einen Firmenfinder, kannst du weitere Parameter wie 'per_page' oder 'orderby' einbauen. Achte darauf, dass dein Callback immer eine REST-Response zurückgibt, damit sie die API korrekt ausliefert. So umgehst du Plugins und schaffst dir eine schlanke, schnelle Schnittstelle genau nach deinen Vorstellungen.
Authentifizierung richtig absichern
Standardmäßig ist die REST API ohne Anmeldung lesbar, aber für Schreibzugriff brauchst du Authentifizierung. Ohne Plugin stehen dir zwei Wege offen: Cookie-basierte Authentifizierung für eingeloggte Nutzer im selben Browser und Application Passwords, die WordPress seit 5.6 nativ unterstützt. Letztere sind ideal für externe Anwendungen. Im Code prüfst du dann mit current_user_can() die Berechtigung. Willst du verhindern, dass unangemeldete Nutzer bestimmte Endpunkte lesen können, setzt du 'permission_callback' in deiner Routen-Definition. So bleibst du flexibel und sicher. Denke daran: Eigene Endpunkte sind nur so stark wie ihre Zugriffskontrolle. Teste jeden Callback mit verschiedenen Rollen, bevor du produktiv gehst.
DSGVO-konform und performant bleiben
In Deutschland gelten strenge Datenschutzregeln. Achte daher darauf, keine personenbezogenen Daten ungefragt über die API auszuliefern. Beschränke die Felder, die ein öffentlicher Endpunkt zurückgibt, auf das Nötigste. Nutze für interne Zwecke Authentifizierung und verschlüsselte Übertragung via HTTPS. Für mehr Performance kannst du REST-Antworten mit dem Transienten-API cachen oder den Server auf HTTP/2 aufrüsten. Vermeide unnötige Abfragen in deinen Callbacks und nutze WP_Query effizient. So bleibt deine WordPress-Website schnell und datenschutzkonform, ganz ohne Zusatz-Plugin. Dokumentiere außerdem, welche Endpunkte existieren und wer Zugriff hat – das gehört zur DSGVO-Dokumentation dazu.
FAQ
Du nutzt die Funktion register_rest_route() und hängst sie an den Hook 'rest_api_init'. Beispiel: add_action('rest_api_init', function() { register_rest_route('mein/v1', '/daten', array('methods' => 'GET', 'callback' => 'mein_callback')); }); Danach ist die Route unter /wp-json/mein/v1/daten erreichbar.