WordPress ist eines der weltweit beliebtesten Content Management Systeme (CMS), das kleinen und großen Unternehmen hilft, verschiedene Formen von Website-Inhalten einzurichten und zu erstellen. Aber WordPress hat sich über die Unterstützung traditioneller Blog-Inhalte hinaus entwickelt – und das ist vor allem der WordPress REST API zu verdanken.

Die WordPress REST API verbindet WordPress mit anderen externen Webanwendungen. Sie ermöglicht eine leichter zugängliche Kommunikation und hilft dir dabei, ansprechende Webangebote zu erstellen, die sich nahtlos in die CMS-Plattform integrieren.

Diese API verwendet Endpunkte, um WordPress-Inhalte als JSON-Objekte abzurufen und zu bearbeiten. Mit diesen Endpunkten kannst du WordPress-Inhalte aus der Ferne erstellen, lesen, aktualisieren und löschen (CRUD), ohne dich in das WordPress-Administratorkonto einloggen zu müssen, was die Flexibilität erhöht und die Funktionalität von WordPress über die Kernfunktionen hinaus erweitert.

In diesem Leitfaden erfährst du, was die WordPress REST API ist, welche Vorteile sie bietet, wie sie die Basisfunktionen von WordPress erweitert und wie du einen benutzerdefinierten Endpunkt erstellst, registrierst und darauf zugreifst.

Voraussetzungen

Um diesem Tutorial zu folgen, brauchst du:

Verstehen der WordPress REST API

Die WordPress REST API ist eine leistungsstarke Schnittstelle, mit der du über Standard-HTTP-Methoden programmatisch mit WordPress-Websites interagieren kannst.

Zu den Standardfunktionen gehören der Zugriff auf und die Bearbeitung von verschiedenen Arten von WordPress-Daten, wie z. B. Beiträge, Seiten, Kommentare, Benutzer und Taxonomien, in einem strukturierten JSON-Format. Du kannst auch aus der Ferne CRUD-Aktionen auf Inhalte durchführen.

Der wahre Wert der WordPress REST API liegt jedoch in ihrer Erweiterbarkeit durch benutzerdefinierte Endpunkte. Du kannst benutzerdefinierte Endpunkte erstellen, um die API an bestimmte Bedürfnisse anzupassen, z. B. um zusätzliche Funktionen, Dienste von Drittanbietern oder einzigartige Datenstrukturen zu integrieren. Dank dieser Flexibilität kannst du sehr individuelle und funktionsreiche Anwendungen auf der Grundlage von WordPress entwickeln.

So planst du deinen benutzerdefinierten API-Endpunkt

Die Planung der Struktur und des Zwecks deiner benutzerdefinierten Endpunkte ist der Schlüssel für eine effiziente API-Entwicklung. Benutzerdefinierte Endpunkte, die auf deine spezifischen Bedürfnisse zugeschnitten sind, müssen sorgfältig geplant werden, um optimale Funktionalität zu gewährleisten. Eine strategische Planung erleichtert die Skalierbarkeit und Anpassungsfähigkeit und macht die Endpunkte zukunftssicher, damit sie den sich entwickelnden Geschäftsanforderungen gerecht werden.

Die Planung deiner benutzerdefinierten API-Endpunkte vor der Implementierung hilft:

  • Klarheit über die Funktion des Endpunkts – Die Planung deines Endpunkts klärt die spezifische Funktion des Endpunkts, seine erwarteten Datentypen und seine Verwendung.
  • Konsistenz und Entwicklungseffizienz – Die Planung sorgt auch für Konsistenz bei der Verwendung der Endpunkte, Antworttypen und Formatierung, was die Interaktion mit der API verbessert. Außerdem ermöglicht die Kenntnis des Zwecks der API eine ordnungsgemäße Implementierung, was die Entwicklungszeit und das Fehlerrisiko verringert.
  • Skalierbarkeit und Anpassungsfähigkeit – Wenn du den Bedarf deines Endpunkts festlegst, ist er zukunftssicher und kann sich an veränderte Geschäftsanforderungen anpassen, ohne dass ein komplettes Redesign erforderlich ist.
  • Sicherheit – Die richtige Planung des Endpunkts hilft dabei, die Notwendigkeit einer Authentifizierung für den Zugriff auf oder die Bearbeitung von Daten zu bestimmen. Der Zugriff auf Inhalte über die API erfordert manchmal keine Benutzerauthentifizierung. Für Inhalte, die sensible oder nicht autorisierte Daten enthalten, ist es jedoch wichtig, Sicherheitsanforderungen zu definieren und Maßnahmen wie Autorisierung und Zugriffskontrollen zu implementieren, um die Datensicherheit zu gewährleisten.

In den folgenden praktischen Abschnitten wird erklärt, wie du einen benutzerdefinierten Endpunkt erstellst, der unter site-domain/wp-json/custom/v2/testimonials verfügbar ist, um Kundenstimmen von einer WordPress-Datenbank-Website abzurufen.

Nachdem du eine Anfrage gesendet hast, gibt der Endpunkt ein JSON-Objekt zurück, das Informationen über die Kundenstimmen auf deiner WordPress-Website enthält, wie sie in deiner Callback-Funktion definiert sind.

Lass uns eintauchen!

Erstelle einen benutzerdefinierten Beitragstyp für deinen Endpunkt

Zuerst musst du einen benutzerdefinierten Beitragstyp erstellen.

  1. Navigiere im Bereich Erscheinungsbild deines WordPress-Admin-Dashboards zum Theme-Dateieditor.
  2. Öffne die Datei function.php deines Themes und füge den folgenden Code ein:
    function create_custom_testimonial_type() {
        register_post_type('testimonials', array(
            'labels' => array(
                'name' => 'Testimonials',
                'singular_name' => 'Testimonial',
            ),
            'public' => true,
            'has_archive' => true,
            'show_in_rest' => true, // This enables REST API support
        ));
    }
    add_action('init', 'create_custom_testimonial_type');

    Dieser Code erstellt einen benutzerdefinierten „Testimonials“-Posttyp und aktiviert die WordPress REST API-Unterstützung ('show_in_rest' => true). Die add_action hook ruft die Callback-Funktion create_testimonial_type auf und startet sie während der Ausführung.

    Du kannst die Bezeichnungen und Argumente anpassen, indem du sie entfernst oder hinzufügst, um sie an deine Bedürfnisse anzupassen.

  3. Klicke auf Datei aktualisieren, um deine Änderungen zu speichern.
    Screenshot des Codes in der Datei functions.php, der einen benutzerdefinierten "Testimonial"-Posttyp erstellt
    Erstellen eines custom_testimonial Beitragstyps

    Aktualisiere das Dashboard, um zu sehen, dass die Option Testimonials zu deinem WordPress-Dashboard hinzugefügt wurde.

    Screenshot showing the newly created testimonial post type
    Der neu erstellte Beitragstyp „Testimonials“.

  4. Erstelle einen neuen Beitrag mit Testimonials, indem du auf Testimonials > Neuen Beitrag hinzufügen klickst. Du kannst den Pullquote-Block verwenden. Je nachdem, wie du dein Zeugnis präsentierst, kannst du auch andere Blöcke verwenden.

Hier sind zwei Beispiele für Zeugnisse, die mit dem Pullquote-Block erstellt wurden:

Screenshot der beiden Testimonials, die mit dem Pullquote-Block erstellt wurden
Neu erstellte Testimonials

Einen benutzerdefinierten Endpunkt in WordPress registrieren

Wenn du einen benutzerdefinierten Endpunkt registrierst, steht er über die REST-API zur Verfügung. Dazu musst du die Funktion register_rest_route verwenden, sie über den rest_api_init Hook aufrufen und eine Callback-Methode bereitstellen, die aufgerufen wird, wenn die Route aufgerufen wird.

Füge den folgenden Code in die Datei function.php deines Themes ein:

add_action( 'rest_api_init', 'register_testimonial_rest_route' );
 
function register_testimonial_rest_route(){
	register_rest_route(
		'custom/v2',
		'/testimonials',
		array(
			'methods' => 'GET',
			'callback' => 'get_testimonials',
		)
	);
}

Diese register_rest_route() nimmt drei Parameter entgegen:

  • Route Namespace ($route_namespace) – Dies ist der erste Teil des URL-Segments und sollte dem Vendor/Versionsnummer-Muster folgen. Der Vendor steht für den Slug des Anbieters oder Themes. Der Namespace hilft bei der Unterscheidung der Endpunkte und erleichtert es den Kunden, den Support für deinen benutzerdefinierten Endpunkt zu kontaktieren. In diesem Leitfaden wird der Namespace custom/v2 verwendet.
  • Die Basis-URL ($route) – Sie folgt auf den Namespace und ist eine URL, die einer Methode zugeordnet ist. Du kannst mehr als einen einzigen Endpunkt für deine Route registrieren. Für diesen Leitfaden verwendest du die Route /testimonials, die dem Endpunkt mitteilt, dass er Zeugnisse abrufen soll.
  • Die Optionen des Endpunkts ($args) – Hier handelt es sich um ein Array, das die HTTP-Methode enthält, die beim Aufruf der Route verwendet wird, sowie die Callback-Funktion, die der Endpunkt aufruft, wenn du eine Anfrage sendest. Wir werden diese Callback-Funktion im nächsten Abschnitt näher erläutern.

Zum Schluss notierst du dir die Adresse deines Endpunkts. Das Format für einen Endpunkt ist site-address/wp-json/namespace/route. In diesem Beispiel lautet der Endpunkt also https://www.staging.kidspartysanctuary.co.uk/wp-json/custom/v2/testimonials.

Implementiere die Callback-Funktion für den Endpunkt

Nachdem du den benutzerdefinierten Beitragstyp erstellt und deinen benutzerdefinierten Endpunkt registriert hast, musst du im nächsten Schritt deine Callback-Funktion schreiben. Diese Callback-Funktion wird jedes Mal aufgerufen, wenn auf den Endpunkt zugegriffen wird.

  1. Deklariere deine get_testimonials Callback-Funktion mit dem unten stehenden Code:
    function get_testimonials(){
    
    }
  2. Initialisiere ein leeres Testimonials-Array, um die abgerufenen WordPress-Testimonial-Daten zu speichern:
    $testimonials = array();
  3. Richte ein Array namens $args mit Abfrageparametern für einen WP_Query aufruf.
    $args = array(
        'post_type' => 'testimonials', //specifies you want to query the custom post type   
    'testimonial',
        'nopaging' => true,  // no pagination, but retrieve all testimonials at once
    ),
  4. Erstelle eine Instanz der Klasse WP_Query, die das Array $args aufnimmt, eine Abfrage mit den angegebenen Parametern durchführt und die Ergebnisse der WordPress-Abfrage in der Variablen $query speichert.
    $query = new WP_Query($args)
  5. Schreibe eine bedingte Anweisung, um zu prüfen, ob es Testimonial-Beiträge gibt. Erstelle dann eine while Schleife, um durch die Beiträge zu iterieren und die title und content der Testimonials zurückzugeben.
    if ( $query->have_posts() ) {
            while ( $query->have_posts() ) {
                $query->the_post();
                $testimonial_data = array( /*an array that stores the title 
    and content of every post*/
                'title' => get_the_title(),
                    'content' => get_the_content(),
                    // Add other fields as needed
                );
                $testimonials[] = $testimonial_data; 
            }
            wp_reset_postdata(); /* restores $post 
    global to the current post to avoid any conflicts in subsequent queries*/
        }
        return rest_ensure_response( $testimonials ); /*ensures response is 
    correctly set as a response object for consistency*/

    Hier ist der vollständige Code:

    function get_testimonials() {
    $testimonials = array();
    $args = array(
        'post_type' => 'testimonials',
        'nopaging' => true,
    );
    $query = new WP_Query( $args );
    if ( $query->have_posts() ) {
        while ( $query->have_posts() ) {
            $query->the_post();
            $testimonial_data = array(
                'title' => get_the_title(),
                'content' => get_the_content(),
                // Add other fields as needed
            );
            $testimonials[] = $testimonial_data;
        }
        wp_reset_postdata();
    }
    return rest_ensure_response( $testimonials );
    }
  6. Teste deinen Endpunkt mit Postman, um zu überprüfen, ob du auf deine Daten zugreifen kannst.
    Screenshot eines erfolgreichen Postman-API-Aufrufs an den benutzerdefinierten Endpunkt "Testimonial"
    Postman zeigt eine erfolgreiche Antwort an

    Du kannst dies auch mit einem Browser testen. Rufe den Endpunkt auf, indem du die URL site-domain/wp-json/custom/v2/testimonials in die Adresszeile deines Browsers eingibst.

    Screenshot des erfolgreichen Zugriffs auf den Endpunkt in einem Webbrowser
    Das Browserergebnis, das beim Zugriff auf den Endpunkt erscheint

Zusammenfassung

In diesem Leitfaden wurde erklärt, wie du einen benutzerdefinierten WordPress-API-Endpunkt implementierst. Damit Nutzer auf die Daten deiner WordPress-Datenbank zugreifen und mit ihnen interagieren können, musst du nur die Route registrieren, die eine Callback-Funktion implementiert.

Willst du wissen, wie du WordPress für dein Unternehmen optimal nutzen kannst? Kinsta bietet zahlreiche erweiterte Optionen im Rahmen unseres Managed WordPress Hosting Service an, um deine individuellen Geschäftsanforderungen zu erfüllen. Eine besondere Option ist das Kinsta MU-Plugin (Must-Use), das das Caching für deine Website verwaltet und implementiert, um die Latenzzeit zu verringern und die Leistung zu verbessern. Teste Kinsta noch heute!

Was hältst du von der Entwicklung eigener WordPress-API-Endpunkte? Hast du schon welche entwickelt? Wir würden uns freuen, von deinen Erfahrungen zu hören. Teile sie in den Kommentaren unten mit.

Jeremy Holcombe Kinsta

Content & Marketing Editor bei Kinsta, WordPress Web Developer und Content Writer. Außerhalb von WordPress genieße ich den Strand, Golf und Filme. Außerdem habe ich Probleme mit großen Menschen ;).