Startseite > How To, Interoperabilität > WordPress Artikel auf anderen Webseiten

WordPress Artikel auf anderen Webseiten

WordPress ist die wahrscheinlich meistgenutzte Blog Plattform im Internet. Seit einiger Zeit gibt es die Möglichkeit über eine REST API die Inhalte von WordPress Blogs auch automatisiert auszulesen und in anderen Kontexten zu nutzen. Dies können andere Webanwendungen oder auch mobile Apps sein. Für uns kam die Anforderung, diese Schnittstelle auszuprobieren aus einem eigenen Bedarf heraus. Wir wollten bestehende Inhalte unseres Blogs auf WordPress auch in die neu gestaltete Webseite einbinden. Zum Einen um die Inhalte nicht neu schreiben bzw. exportieren und importieren zu müssen, zum anderen sollen die Artikel auf dem WordPress Blog weiterhin gelesen werden. Zudem bietet dieser Ansatz, die Vorteile, das komfortable und vertraute Erstellen der Inhalte unverändert fortzuführen. Da unsere Webseite mit C# in .NET und dem MVC Framework umgesetzt ist, zeigen wir hier, wie von einer .NET Web Anwendung auf die beschriebenen Inhalte zugegriffen werden kann.
Die komplette Beschreibung der API von WordPress finden Sie hier: http://developer.wordpress.com/docs/api/

Auf sämtliche Inhalte lässt sich über http Aufrufe zugreifen. Neben lesenden Zugriffen lassen sich auch Inhalte erstellen oder ändern. Für unsere Anforderungen reicht allerdings das Auslesen der Blogeinträge.
Als Einstiegspunkt benötigen wir die Basis-URL der WordPress API. Diese lautet: https://public-api.wordpress.com/rest/v1/
An diese URL wird /sites/#BLOGID#/posts/ angehängt, wobei #BLOGID# ein ganzzahliger Wert ist, der die gewünschte Blogseite identifiziert oder alternativ die URL der Blogseite z.B. „intuisoft.wordpress.com“. Die vollständige Basis-URL zum Zugriff auf die Blog-Inhalte lautet somit:
https://public-api.wordpress.com/rest/v1/sites/intuisoft.wordpress.com/posts/
Das Ergebnis wird im JSON Format zurückgegeben. Dieses Ergebnis können wir in unserer Webanwendung auslesen. In diesem Beispiel zeigen wir wie dies von C# aus geht:
Zunächst muss die Bibliothek System.Net.Http eingebunden werden:

using System.Net.Http;
using System.Net.Http.Headers;

Danach wird die oben erläuterte URL spezifiziert und ein HttpClient instanziiert:

Public static string wpAPIuri = https://public-api.wordpress.com/rest/v1/;

Public string wpPath = „sites/intuisoft.wordpress.com/posts/?pretty=false“;

HttpClient client = new
HttpClient();

Nun wird die Basisadresse übergeben und dem Client mitgeteilt, dass wir ein Ergebnis im JSON Format erwarten:

client.BaseAddress = new Uri(wpAPIuri);

client.DefaultRequestHeaders.Accept.Add(new
MediaTypeWithQualityHeaderValue(„application/json“));

Es wird ein Aufruf an die WordPress Adresse gesendet und mittels GetAsync() mit der Fortführung gewartet bis das Ergebnis vorliegt. Die zurückgegebene Antwort liegt als HttpResponseMessage vor. Die beiden Klassen WParticles und WPpost definieren die notwendige Datenstruktur um die gewünschten Artikel von WordPress entgegenzunehmen und die Attribute, die wir weiterverarbeiten möchten aufzunehmen. Über eine Auswahl der möglichen Felder in WPpost lassen sich die Attribute von Interesse verwerten. Der Umfang an Feldern pro Blogeintrag ist größer als hier angegeben. Ein Blick in die Dokumentation zeigt zusätzliche Felder, die möglicherweise für Sie interessant sind.

HttpResponseMessage response = client.GetAsync(wpPath).Result;
WParticles myRoot = new
WPaticles();
if (response.IsSuccessStatusCode)
{
myRoot = (WParticles)response.Content.ReadAsAsync(myRoot.GetType()).Result;
WPpost[] Ergebnis = myRoot.posts;
}

class WParticles
{

int found { get; set; }
WPpost[] posts { get; set; }
}

class WPpost
{
int ID { get; set; }
string date { get; set; }
string title { get; set; }
string content { get; set; }
string excerpt { get; set; }
string featured_image { get; set; }
string URL { get; set; }
}

Ein Array vom Typ WPpost nimmt das Ergebnis entgegen. Damit können die empfangenen WordPress Artikel in einem anderen Kontext eingebunden werden.

Um nicht alle Artikel zu laden, lassen sich bestimmt Anfrageparameter angeben. Wird beispielsweise „&category=sharepoint“ an den String wpPath angehängt, werden nur die einer bestimmten Kategorie zugehörigen Artikel abgefragt. Es kann auch nach Tags gefiltert werden. Die Ergebnisse lassen sich unterschiedlich sortieren oder zeitlich einschränken. Für die vollständige Liste der Möglichkeiten schauen Sie sich bitte die Dokumentation auf WordPress an.

Dieser Artikel hat gezeigt, wie sich automatisch Inhalte von WordPress Blogs auslesen lassen. Webanwendungen oder Apps können so elegant und universell auf eigene Artikel oder auf Artikel von anderen Blogs zugreifen. Äquivalent lässt sich diese API auch nutzen um Artikel zu posten oder Inhalte zu ändern. Wenn Sie noch genauere Informationen brauchen oder spezifische Fragen haben, zögern Sie nicht, Kontakt mit uns aufzunehmen.

Advertisements
  1. Es gibt noch keine Kommentare.
  1. No trackbacks yet.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: