Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Creative Coding

Ein Blick auf die WordPress-HTTP-API: Ein praktisches Beispiel für wp_remote_get

by
Difficulty:IntermediateLength:LongLanguages:
This post is part of a series called A Look at the WordPress HTTP API.
A Look at the WordPress HTTP API: A Brief Survey of wp_remote_get
A Look at the WordPress HTTP API: wp_remote_get - the Response

German (Deutsch) translation by Wei Zhang (you can also view the original English article)

Im letzten Artikel dieser Serie haben wir uns die PHP-Funktionen angesehen, die für Fernanforderungen verfügbar sind.

Im Einzelnen haben wir Folgendes überprüft:

  • file_get_contents
  • cURL

Und wir haben auch die WordPress-Funktion wp_remote_get diskutiert.

In diesem Artikel werden wir das wp_remote_get zum Laufen bringen. Diese Funktion ist Teil der HTTP-API - zur praktischen Verwendung, indem die folgenden zwei Dinge abgerufen werden:

  1. Die Anzahl der Follower haben wir auf Twitter
  2. Unser neuester Tweet

Das Schöne ist, dass wir keine OAuth- oder Authentifizierungsmechanismen verwenden müssen und wir müssen nur die Antworten von Twitter und die JSON-Funktionalität von PHP nutzen.

In diesem Artikel werden wir einen praktischen Blick darauf werfen, wie genau dies zu tun ist. Dann werden wir die Serie beenden und alle Informationen überprüfen, die von wp_remote_get zurückgegeben werden, damit wir wissen, wie wir dies in der zukünftigen Arbeit richtig handhaben .


Bereiten Sie das Plugin-Verzeichnis vor

Wie bei allen Plugins müssen wir zunächst ein Verzeichnis in unserem Verzeichnis wp-content/plugins erstellen. Für die Zwecke dieser Demo nennen wir unser Plugin Twitter Demo.

Nennen wir also das Plugin-Verzeichnis twitter-demo und die zugehörige Plugin-Datei twitter-demo.php.

Twitter Demo

Als Nächstes müssen wir den Header des Plugins ausstopfen, damit WordPress die Plugin-Datei erkennen kann.


Das Plugin ausmischen

Fügen Sie zunächst folgenden Code in den Header der Datei twitter-demo.php ein:

Beachten Sie, dass wir dieses Plugin nicht internationalisieren werden. Wir haben dieses Thema in einem anderen Beitrag behandelt und es ist etwas, was den Rahmen dessen, was wir in diesem Artikel versuchen, nicht erreichen kann.

An diesem Punkt sollte das Plugin im Plugin-Dashboard Ihrer WordPress-Installation angezeigt werden. Sie können es aktivieren; es wird jedoch nichts tun.

Zumindest jetzt noch nicht.


Das Plugin zum Leben erwecken

Wie bei den übrigen Demo-Plugins, die ich hier veröffentliche, denke ich, dass es wichtig ist, zuerst zu beschreiben, was das Plugin tun wird, bevor wir mit dem Codieren beginnen.

Daher können wir Folgendes erwarten:

  • Am Ende jedes Beitrags wird eine kleine Benachrichtigung mit der folgenden Meldung angezeigt: Ich habe X Anzahl von Followern auf Twitter. Mein letzter Tweet war Y.
  • Wir werden sicherstellen, dass dies nur auf der einzelnen Post-Seite geschieht, damit sie nicht auf der Hauptindex- oder Archivseite angezeigt wird.

Sicher, es ist ein wenig abscheulich, wenn Sie dies am Ende eines Beitrags anzeigen. Denken Sie jedoch daran, dass dieses Plugin demonstriert, wie man wp_remote_get verwendet, wie man eine Antwort von Twitter analysiert und wie man es anzeigt.

Es geht uns weniger darum, wo der Inhalt angezeigt wird.

Lassen Sie uns also die Klasse, die diese Funktionalität bereitstellen wird, ausspähen.

1. Stub die Twitter-Demo-Klasse aus

Bevor wir irgendetwas tun, sollten wir die Klasse, die wir verwenden, um die Anfrage an Twitter zu stellen, ausreden. Ich habe den gesamten Code zusammen mit der Dokumentation für jedes Attribut und jede Methode eingefügt.

Beachten Sie, dass wir den Rest dieser Methoden füllen werden, und wir haben auch den vollständigen Quellcode des Plugins am Ende des Artikels.

Bevor wir weitergehen, möchte ich darauf hinweisen, dass wir das Singleton-Muster für dieses Plugin verwenden werden. Wir haben dieses Entwurfsmuster in einem früheren Artikel behandelt, und obwohl seine Vorteile außerhalb des Umfangs dieses Artikels liegen, empfehle ich, den zugehörigen Artikel zu lesen, um sicherzustellen, dass Sie wissen, warum wir unser Plugin auf diese Weise einrichten.

Als Nächstes wollen wir uns die Funktionen anschauen, die wir entworfen haben, damit wir genau wissen, wohin wir gehen:

  • Im Konstruktor fügen wir eine Aktion hinzu, um unsere Twitter-Informationen an einen einzelnen Beitrag anzuhängen
  • display_twitter_information wird verwendet, um die Nachricht am Ende des Beitrags zu rendern
  • make_twitter_request fordert die Daten tatsächlich von Twitter an und gibt sie zurück (oder null, wenn die Anforderung fehlschlägt).
  • get_follower_count gibt die Anzahl der Follower für den angegebenen Benutzer zurück (oder -1, wenn ein Problem vorliegt)
  • get_last_tweet liefert den letzten Tweet des Benutzers oder eine Nachricht, falls das Plugin fehlschlägt

Klar genug? Lassen Sie uns an diesem Punkt daran arbeiten, Informationen von Twitter anzufordern, damit wir sie verarbeiten können.

2. Daten von Twitter anfordern

Zuerst füllen wir die Funktion make_twitter_request mit dem folgenden Code auf. Beachten Sie, dass ich es nach dem Code erkläre:

In der ersten Zeile des Codes nutzen wir wp_remote_get, um unsere Anfrage zu stellen. Beachten Sie, dass wir den $username -Parameter verwenden, um den JSON-Feed des Benutzers abzurufen. Beachten Sie, wie einfach es ist, eine Anforderung mit der Funktion wp_remote_get zu erstellen.

Dieser Benutzername wird von einer anderen Funktion übergeben, die wir kurz betrachten.

Beachten Sie als Nächstes, dass wir Code in try/catch auspacken. Dies liegt daran, dass die Anfrage an Twitter möglicherweise fehlschlagen kann. Wenn dies nicht fehlschlägt, verwenden wir die json_decode-Funktion von PHP, um den Hauptteil der Antwort zu decodieren. Andernfalls setzen wir die Antwort auf null.

Dies führt zu einer einfachen Bedingung in der aufrufenden Funktion.

Bevor wir fortfahren, ist es wichtig zu beachten, dass es hier einen subtilen Einstieg gibt: Beachten Sie, dass wir den 'body'-Schlüssel des zurückgegebenen $response-Arrays dekodieren. Für diejenigen unter Ihnen, die neugieriger sind, werfen wir einen detaillierten Blick auf die Antwort, die bei der Verwendung von wp_remote_get im nächsten Artikel auftritt.

Beachten Sie einfach, dass der body-Index des $response-Arrays nur eine Information ist, die wir zur Verfügung haben.

3. Rufen Sie die Request-Funktion auf

Nachdem wir nun die Funktion definiert haben, die für eine Anfrage an Twitter verantwortlich ist, definieren wir die Funktion, die Daten von Twitter anfordert, und zeigt sie unter dem Post-Inhalt an.

Hier ist der Code, nach dem ich genau erklären werde, was er tut:

Zunächst sollten Sie wissen, dass dies die längste Funktion im gesamten Plugin ist. Wenn Sie dies durchgehen können, können Sie gut gehen.

Denken Sie daran: Diese Funktion wird während der the_content-Aktion aufgerufen, die in unserem Konstruktor definiert wird, sobald das Plugin vollständig ausgeführt ist.

Daher prüft die Funktion zuerst, ob wir uns in einem einzelnen Beitrag befinden. Wenn nicht, wird der Inhalt einfach zurückgegeben. Andernfalls wird Folgendes ausgeführt:

  • Versucht, eine Anfrage an Twitter zu stellen
  • Wenn die Anforderung fehlschlägt, wird eine entsprechende Meldung angezeigt
  • Andernfalls wird eine Nachricht mit der Anzahl der Follower und dem letzten Tweet der Person gedruckt
  • Die Nachricht wird an den Post-Inhalt angehängt

Ein wichtiger Hinweis: In dieser Funktion geben Sie den Benutzernamen an, für den Sie die Informationen abrufen möchten. Beachten Sie beispielsweise, dass ich Informationen für @WPTuts abrufen möchte, indem Sie $this->make_twitter_request('wptuts') aufrufen.

4. Lesen Sie die Informationen

An diesem Punkt können wir die Informationen lesen und die Zeichenfolgen in unserer Nachricht verketten, um sie dem Benutzer anzuzeigen. Wir machen dies mit der get_follower_count-Methode und dem get_last_tweet.

Da diese Methoden so ähnlich sind, schauen wir uns beide an und erkläre sie nach dem Code:

Beachten Sie, dass die beiden Funktionen insofern ähnlich sind, als beide die $json-Daten von früheren Plugins akzeptieren. Als Nächstes verwenden beide einen ternären Operator, um zu bestimmen, ob der angeforderte Text oder eine Standardnachricht zurückgegeben werden sollen.

Mit anderen Worten, wenn wir die Anzeige followers_count anzeigen möchten und der Wert größer als -1 ist, wissen wir, dass wir einen Wert haben, der angezeigt werden soll. Andernfalls geben wir -1 als Indikator zurück, dass der Wert nicht richtig festgelegt ist.

Dies erlaubt uns, defensiv gegen etwas zu codieren, das bei der Verarbeitung der Daten schief gehen könnte.


Das Twitter Demo Plugin

Wie versprochen, hier der vollständige Quellcode mit entsprechender Dokumentation:

Es ist eigentlich relativ einfach, richtig? Tatsächlich gibt es so viele Codekommentare wie Zeilen mit tatsächlichem Code, sodass das Plugin selbst sehr klein ist.


Fazit

Diese Demo zeigt, wie einfach es ist, mit wp_remote_get mit Diensten von Drittanbietern zu interagieren, ihre Antwort zu analysieren und in ein Plugin zu integrieren. Zugegeben, das sind sehr nackte Knochen, aber es beweist immer noch das Konzept.

Im nächsten Artikel in diesem Teil der Serie werden wir alle Informationen betrachten, die wir an wp_remote_get übergeben können, um zu sehen, wie flexibel die Methode ist. Danach werden wir uns die Antwortdaten genau ansehen, damit wir kompliziertere Anforderungen und defensiveren Code schreiben können.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.