Webkrauts Logo

Webkrauts Webkrauts Schriftzug

- für mehr Qualität im Web

YQL-Bildergalerie als WordPress-Plugin

YQL-Bildergalerie als WordPress-Plugin

Gestern hat Michael Grosch beschrieben, wie ihr mit Hilfe von YQL eine Galerie mit Bildern von Flickr oder Picasa Web Albums erstellt. Heute verwandelt er diese Funktionalität in ein WordPress-Plugin.

Hinweis: Dieser Artikel baut auf »SELECT Bilder FROM Flickr OR PicasaWebAlbums WITH YQL FOR Bildergalerie« auf.

Die Suche im offiziellen Plugin-Verzeichnis von WordPress nach »Flickr« ergibt 229 Treffer, die Suche nach »Picasa« liefert 70 Treffer. Es gibt also bereits eine große Auswahl an fertigen Plugins. Warum sollte sich ein Webworker eigentlich die Mühe machen, ein eigenes Plugin zu entwickeln?

Vielleicht, weil wir bei deren Installation die Katze im Sack kaufen und die meisten Plugins überdimensioniert sind, um so viele Anforderungsmöglichkeiten wie möglich abzudecken. Überdimensioniert bedeutet meist auch, dass diese Plugins negative Auswirkungen auf die Performance haben, was es zu vermeiden gilt. Das Ziel ist eine schlanke Lösung, mit der Bilder von Flickr oder Picasa Web Albums so einfach wie möglich als Galerie in Artikel oder Seiten eingefügt werden können. Das erreichen wir am effektivsten durch ein kleines, auf die individuellen Bedürfnisse optimiertes WordPress-Plugin.

Anforderungen

Prinzipiell muss das neue Plugin keinen großen Funktionsumfang bieten. Wir benötigen weder eine eigene Administrations-Maske noch eigene Datenbank-Tabellen. Alles, was wir brauchen, ist eine einfache Möglichkeit, innerhalb von Artikeln oder Seiten eine Bildergalerie einbinden zu können. Hierfür eignet sich die in WordPress seit der Version 2.5 zur Verfügung stehende Shortcode-API. Mit Hilfe von Shortcodes können bestimmte Funktionalitäten oder Inhalte ganz einfach in einen Text eingefügt werden. Ein Shortcode, der an einer beliebigen Stelle des Textes platziert werden kann, könnte so aussehen:

  1. [wpYQLFlickrPicasaGallery service='flickr' album='72157627920494225']

Beim Vergleich dieses Shortcodes mit dem Aufruf der PHP-Klasse aus dem vorherigen Artikel »SELECT Bilder FROM Flickr OR PicasaWebAlbums WITH YQL FOR Bildergalerie« ist eine gewisse Übereinstimmungen erkennbar.

  1. $gallery->getAlbum(Gallery::TYPE_FLICKR,'alaskana','72157627920494225',0,12,'_s','_z','YQL macht gerade Pause. Die Galerie findet ihr unter folgendem Link');

Es ist also so, dass wir mit Hilfe eines Shortcodes zum Beispiel eine PHP-Klasse, die in einem Plugin verpackt ist, mit Parametern füttern.

Schritt für Schritt

Zuerst definieren wir die Funktion wpYQLFlickrPicasaGalleryShortcode, die durch den Shortcode ausgeführt werden soll.

  1. function wpYQLFlickrPicasaGalleryShortcode($attributes, $content=NULL){}

Dann definieren wir den Shortcode wpYQLFlickrPicasaGallery selbst und verknüpfen ihn mit der Funktion wpYQLFlickrPicasaGalleryShortcode.

  1. add_shortcode('wpYQLFlickrPicasaGallery', 'wpYQLFlickrPicasaGalleryShortcode');

Als nächstes sagen wir der Funktion, was sie tun soll. Hierbei hilft die Shortcode-API, die sämtliche innerhalb des Shortcodes angegebenen Attribute und deren Werte an die verknüpfte Funktion übergibt. Innerhalb dieser Funktion wird mit shortcode_atts(), in Form eines Arrays, erklärt, welche Shortcode-Attribute zur Verfügung stehen und deren Standardwerte definiert. Danach stehen die Attributwerte aus dem Shortcode innerhalb der Funktion zur Weiterverarbeitung zur Verfügung. Diese übergeben wir an die im vorausgehenden Artikel »SELECT Bilder FROM Flickr OR PicasaWebAlbums WITH YQL FOR Bildergalerie« entwickelte PHP-Klasse, die mit Hilfe von YQL die Bilder von Flickr oder Picasa Web Albums holt und zu einer Galerie zusammenstellt.

Das Resultat ist alles andere als Raketentechnologie:

  1. function wpYQLFlickrPicasaGalleryShortcode($attributes){
  2.     $galleryAttributes = shortcode_atts(array('service' => 'flickr','username' => 'alaskana','album' => '72157627920494225','offset' => '0','limit' => '12','thumbnail' => '_s','fullSize' => '','errorMessage' => 'Es ist ein unerwarteter Fehler aufgetreten.'), $attributes);
  3.     if($galleryAttributes['service'] == 'picasa') {
  4.         $service = Gallery::TYPE_PICASA;
  5.     } else {
  6.         $service = Gallery::TYPE_FLICKR;
  7.     }
  8.     $gallery = new Gallery();
  9.     return $gallery->getAlbum($service,$galleryAttributes['username'],$galleryAttributes['album'],$galleryAttributes['offset'],$galleryAttributes['limit'],$galleryAttributes['thumbnail'],$galleryAttributes['fullSize'],$galleryAttributes['errorMessage']);
  10. }
  11.  
  12. add_shortcode('wpYQLFlickrPicasaGallery', 'wpYQLFlickrPicasaGalleryShortcode');

Jetzt ist das WordPress-Plugin fast fertig. Es fehlen nur noch die notwendigen Angaben, damit WordPress es auch als Plugin identifizieren kann. Die einzige Pflichtangabe ist Plugin Name; alle anderen Angaben sind optional.

  1. /*
  2. Plugin Name: WP YQL Flickr/Picasa Gallery
  3. Description: Display pictures from a Flickr or Picasa album, using the Shortcode API and YQL to grab the data.
  4. Autor: Michael Grosch
  5. Version: 0.9
  6. Autor URL: http://migrosch.com
  7. */

Um nun das WordPress-Plugin für die Installation vorzubereiten, erstellt ihr einen Ordner (z.B. mit dem Namen »wpYQLFlickrPicasaGallery«) und legt die PHP-Datei darin ab. Wenn ihr diesen Ordner zippt, könnt ihr diese .zip-Datei in WordPress über »Plugins« => »Installieren« => »Hochladen« installieren und aktivieren. Danach steht der Einbindung unserer Bildergalerien innerhalb von Artikeln und Seiten nichts mehr im Wege.

So sieht der Shortcode in seiner gewohnten Umgebung aus:

WordPress-Shortcode im Editor
WordPress-Shortcode im Editor

Aufgepeppt mit ein wenig CSS erzeugt das diese Ausgabe:

WordPress-Shortcode im Editor
Beispiel-Bildergalerie

Die Entwicklung eines auf einfachste Bedürfnisse abgestimmten WordPress-Plugins hat gezeigt, wie flexibel WordPress ist und wie einfach und schnell wir deshalb das angestrebten Ergebnis erreichen. Mit ein wenig YQL, einem Schuss PHP und dem Einsatz von WordPress könnt ihr in wenigen Schritten eine einfache und doch flexible Lösung zur Integration von Bildergalerien entwickeln. So holt ihr Bilder direkt von Flickr oder Picasa Web Albums, ohne dass ihr diese noch zusätzlich in die Mediathek von WordPress eingepflegen müsst.

Die Kommentare sind geschlossen.