Oft besteht ein Webauftritt aus mehreren Softwarekomponenten, die zumeist auch auf unterschiedlichen Technologien basieren. Dazu gehören beispielsweise

  • Content Management Systeme
  • Blogsoftware
  • Shopsysteme

In diesem Beitrag geht es darum, wie man mittels Zend Framework (ZF2) auf Blogpost einer WordPress Installation zugreifen kann.

WordPress und Zend – eine Kurzbeschreibung

WordPress

Die in der Skriptsprache PHP geschriebene freie Web-Software WordPress ist eine der am häufigsten verwendeten Programme zur Verwaltung von Inhalte einer Webseite. WordPress ist vor allem zum Aufbau von Weblogs sehr beliebt und kann mittels Plug-In Architektur sehr einfach im Funktionsumfang erweitert werden.

Eine API-Beschreibung der Software findet man hier: WordPress API

Diese wird im weiteren Verlauf noch eine Rolle spielen, wenn wir aus einer Zend-Applikation auf WordPress Blog-Einträge zugreifen wollen.

Zend Framework

Das Zend Framework ist ein flexibles Open Source Framework, welches PHP-Entwicklern mittels sogenannter Komponenten verschiedenste Funktionalitäten zur Verfügung stellt. Dazu gehören Zugriff auf Datenbanken, eine Model-View-Controller Architektur, Suchfunktionen, Benutzerverwaltung oder APIs für Google, Twitter oder Amazon.

Dieser Beitrag geht von Version 2 des Frameworks aus, für das PHP 5.3 vorausgesetzt wird: Zend API

Blogposts aus WordPress auslesen

Über Remote Procedure Calls (RPC) können Funktionen einzelner WordPress-Komponenten ausgeführt werden. Dies beinhaltet:

  • Posts
  • Taxonomies (categories, tags, custom)
  • Media
  • Comments
  • Options
  • Users

Eine vollständige Beschreibung der WordPress XML-RPC API ist hier verfügbar.

Das Zend Framework beinhaltet das Modul Zend\XmlRpc\Client, welches Funktionen zum Ausführen von remote-Methoden bereitstellt.

WordPress Setup

Bevor wir loslegen, ist es ratsam, einen separaten User pro Applikation für Remote-Zugriffe anzulegen. Sollte eine Anwendung kompromittiert worden sein, kann der User über die WordPress-Benutzerverwaltung einfach gelöscht oder sein Passwort geändert werden.

WordPress RPC-User anlegen

Zend RPC Client Beispiel

Nun ist es soweit – hier ein Beispiel-Auszug zum Auslesen aller Blogposts einer WordPress-Installation:

$rpc_uri = $protocol.'://'.$wp_server_host.'/blog/xmlrpc.php';
$client = new Zend\XmlRpc\Client($rpc_uri);

try {
    $result = $client->call('wp.getPosts', 
                            array(0, $xmlrpc_user, $xmlrpc_pw, 
                                array(
                                    'post_type'   => 'post', 
                                    'post_status' => 'publish')));
} catch (Zend\XmlRpc\Client\Exception\HttpException $e) {
    // $e->getCode() returns 404
    // $e->getMessage() returns "Not Found"

    // do your error-handling here
}

foreach ($result as $res) {
    $post_id = $res['post_id'];
    $post_link = $res['link'];
    $post_created = $res['post_date_gmt'];
    $post_modified = $res['post_modified_gmt'];
    $post_thumbnail = $res['post_thumbnail'];
    		
    if (!$post_modified) {
        $post_modified = $post_created;
    }

    $post_created = date("Y-m-d\TH:i:sP", strtotime($post_created));
    $post_modified = date("Y-m-d\TH:i:sP", strtotime($post_modified));

    // do something
}

Viel Spaß beim Ausprobieren!

Bitte bewerten Sie meinen Beitrag:
grauenhafteinfach nur schlechtich habe es geschafft ohne einzuschlafengut ist gut genugsehr gut, bitte mehr davon (2 Bewertungen, Ø: 4,00 von 5)
Loading...