WordPress
REST-API
Suche…
Einführung
Die WordPress-REST-API stellt API-Endpunkte für WordPress-Datentypen bereit, mit denen Entwickler mit Websites remote kommunizieren können, indem sie JSON-Objekte (JavaScript Object Notation) senden und empfangen.
Wenn Sie Inhalte an die API senden oder eine Anforderung an sie senden, wird die Antwort in JSON zurückgegeben. Auf diese Weise können Entwickler WordPress-Inhalte aus clientseitigem JavaScript oder aus externen Anwendungen erstellen, lesen und aktualisieren, auch wenn sie in anderen Sprachen als PHP geschrieben sind.
Bemerkungen
Damit dieses einfache WordPress-REST-API-Beispiel für Sie funktioniert, müssen Sie lernen, wie es ausführlicher funktioniert. Offizielle Dokumentation empfiehlt das Erlernen von:
Routen / Endpunkte - Dies sind Zuordnungen einzelner HTTP-Methoden zu Routen, die als "Endpunkte" bezeichnet werden. Sie tun dies mit der Funktion register_rest_route (). Hier finden Sie weitere Informationen zu Routen und Endpunkten .
Anforderungen - Die WordPress-REST-API definiert die
WP_REST_Request
Klasse, die zum Speichern und Abrufen von Informationen für die aktuelle Anforderung verwendet wird.WP_REST_Request
Objekte werden automatisch für Sie generiert, wenn Sie eine HTTP-Anforderung an eine registrierte RouteWP_REST_Request
. Die in der Anfrage angegebenen Daten bestimmen, welche Antwort Sie wieder aus der API erhalten. Hier erfahren Sie mehr über die Klasse WP_REST_Request .Antworten - sind die Daten, die Sie von der API erhalten.
WP_REST_Response
bietet eine Möglichkeit, mit den von Endpunkten zurückgegebenenWP_REST_Response
zu interagieren. In Ihrer Endpunktdefinition benennen Sie die Callback-Funktion (Antwort), um Ihre Interaktion zu bedienen. Hier erfahren Sie mehr über die Klasse WP_REST_Response .Schema - Jeder Endpunkt erfordert und stellt geringfügig andere Datenstrukturen bereit. Diese Strukturen werden im API-Schema definiert. Wenn Sie wartbare, auffindbare und leicht erweiterbare Endpunkte wünschen, wird die Verwendung des Schemas empfohlen. Hier erfahren Sie mehr über das Schema .
Controller-Klassen - sie bringen alle Elemente an einem Ort zusammen. Mit einer Controller-Klasse können Sie die Registrierung von Routen und Endpunkten verwalten, Anforderungen bearbeiten, Schema verwenden und API-Antworten generieren. Sie haben bereits zwei Controller-Klassen
WP_REST_Request
:WP_REST_Request
undWP_REST_Response
. Hier erfahren Sie mehr über die Controller-Klassen
Hinweis: Einige dieser Informationen stammen aus dem offiziellen Wordpress-REST-APi-Handbuch
Vollständiges Arbeitsbeispiel
add_action('rest_api_init', 'my_rest_validate_endpoint' );
function my_rest_validate_endpoint() {
// Declare our namespace
$namespace = 'myrest/v1';
// Register the route
// Example URL matching this route:
// http://yourdomain/wp-json/myrest/v1/guides/tag=europe/price=29
register_rest_route($namespace,
// Using regular expressions we can initially validate the input
'/guides/tag=(?P<tag>[a-zA-Z0-9-]+)/price=(?P<price>[0-9]+)',
// We can have multiple endpoints for one route
array(
array(
'methods' => 'GET',
'callback' => 'my_get_guides_handler'
)
),
// We can register our schema callback
// 'schema' => 'my_get_guide_schema',
);
// You can register another route here the same way
}
// The callback handler for the endpoint
function my_get_guides_handler(WP_REST_Request $request) {
// Get the parameters:
$tag = $request->get_param('tag');
$price = $request->get_param('price');
// Do something with the parameters
// for instance: get matching guides from the DB into an array - $results
// ...
// Prepare the response
$message = "We've found " . count($results) . " guides ";
$message .= "(searching for a tag: " . $tag . ", with a price tag: " . $price . ")";
// The response gets automatically converted into a JSON format
return new WP_REST_Response(
array(
'results' => $results,
'message' => $message,
'status' => 'OK'
),
200 );
}