In Kürze
- wp_remote_get() statt cURLMit wp_remote_get() ruft die HTTP API von WordPress externe APIs ab und liefert Fehler als WP_Error-Objekt, das is_wp_error() abfängt. Für API-Abrufe eignet sie sich besser als direktes cURL.
- Zwei Wege für PHP-CodeÜber ein Snippet-Plugin als Shortcode oder über die functions.php eines Child-Themes gelangt PHP-Code für den API-Abruf in WordPress. Im Child-Theme übersteht der Code Theme-Updates.
- 5 Sekunden TimeoutOhne eigene Angabe wartet wp_remote_get() bis zu fünf Sekunden auf die API, so lange verzögert sich die Serverantwort. Der Parameter timeout setzt einen kürzeren Wert.
- Transients als ZwischenspeicherZeitlich begrenzt speichert WordPress API-Antworten mit set_transient(), die Seite wartet dann nicht bei jedem Aufruf auf die externe API.
Individuell programmierte APIs (Application Programming Interface) sind für Non-Technies nicht oder nur schwer zugänglich. Sollten Sie sich also nach der API-Entwicklung auf sich selber gestellt fühlen, helfen wir Ihnen hier, Ihre API in WordPress einzubinden.
In diesem Blogbeitrag erklärt Ihnen unser SEO Experte Philipp, wie man GET-Requests der API auf WordPress nutzen kann. APIs lassen generell auch POST-Requests zu, welche in diesem Artikel aber nicht behandelt werden.
Inhalte dieser Seite
WordPress mit API verbinden
Um eine Verbindung mit einer API aufzubauen, die beispielsweise mit Python und Flask gebaut wurde, gibt es verschiedene Möglichkeiten.
Über ein PHP Snippets Plugin
Die Verbindung stellt man beispielsweise über PHP und cURL her. Dies bietet sich für WordPress an, da WordPress zu großen Teilen auf PHP basiert.
Mit dem PHP Snippets Plugin kann man angepassten PHP-Code ganz einfach als Shortcode in eine WordPress-Seite einbinden.
Somit muss man die functions.php des Themes gar nicht anrühren. Ein Child-Theme ist dementsprechend auch nicht zwingend notwendig.
Info: Die interne WordPress-Funktion wp_remote_request() eignet sich noch besser als das im Beispiel verwendete cURL!
Über die functions.php Theme File
Der etwas kompliziertere, aber professionellere Weg wäre die Einbindung des Codes in der functions.php Datei des Themes.
Vorsicht: Sollte man sich nicht mit PHP und WordPress auskennen, so wird dieses Vorgehen nicht empfohlen.
Für diesen Schritt empfiehlt sich als Allererstes das Anlegen eines Child-Themes. Anschließend kann man in der functions.php File seinen PHP Code einfügen.
In dieser Datei muss dann eine neue Funktion für den API-Abruf erstellt werden.
Beispiel für GET-request einer API mit WordPress
In unserem Beispiel nutzen wir cURL und eine öffentliche API. Außerdem arbeiten unsere SEO Berater mit dem PHP Code Snippet Plugin um das Ganze einfach zu halten.
Den Beispiel-Code gibt es kostenlos zum Download auf Github
Anschließend können Sie dem folgenden Video (in Englisch) folgen. Dort wird erklärt wo und wie Sie die API in WordPress einbinden.
Sie sehen gerade einen Platzhalterinhalt von Standard. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf den Button unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Die Ladegeschwindigkeit der API – SEO relevant
Da wir nicht jedes Einbinden eines Application Programming Interface empfehlen können, achten Sie zwingend auf die Geschwindigkeit der API. Dies können Sie beispielsweise mit Postman testen.
Gerade für die Suchmaschinenoptimierung und die dazugehörige Pagespeed Optimierung ist eine langsame API Gift. Dem Ganzen kann mit der Zwischenschaltung einer Datenbank oder dem temporären Speichern mit den Transients-Funktionen set_transient() und get_transient() Abhilfe geschaffen werden.