Warten auf WordPress 3.0

So wie es ausschaut, wird WordPress 3.0 erst Ende Mai bzw. Anfang Juni offiziell verfügbar sein. Wer so experimentierfreudig wie ich ist, kann sich auch schon die Beta-Version laden und installieren. Bisher habe ich keine größeren Probleme erkennen können, die wirklich gegen einen Einsatz sprechen. Allerdings ist die Liste der Plugins – welche ich hier einsetze – recht übersichtlich, sodass einige potentielle Störenfriede schon im Vorfeld ausgeschlossen sind und meine Website somit nicht unbedingt das Maß der Dinge darstellt.

Ich hab aber doch eine Sache, die mir wirklich auf den Fingern brennt. Vor einiger Zeit hatte ich mich ja zu WPML geäußert. An sich finde ich die Idee und die Umsetzung, eine mit WordPress angetriebene Website mittels Plugin, mehrsprachig zu gestalten, im weitesten Sinne gelungen. Das hinter dem Projekt die klare kommerzielle Absicht steht, Übersetzungen zu verkaufen, sehe ich keineswegs als verwerflich an. Möglicherweise sorgt dieser Fakt auch für eine gewisse Zukunftssicherheit. Schließlich macht man sich mit dem Einsatz eines solchen Plugins schnell „abhängig“ und falls die Entwicklung irgendwann einmal eingestellt werden sollte, steht man unter Umständen ziemlich dumm da.

Aber es gibt einige Details bei der Arbeit mit WPML, die mir inzwischen echt auf die Nerven gehen und die mir zudem nicht unbedingt die Gewissheit vermitteln, dass da alles mit rechten Dingen zugeht. Auf meiner  aktuellen WordPress-Installation zeigen sich beispielsweise einige hässliche Fehler in der Ausgabe, wenn man Quickedit benutzt. Der HTML-Header im Frontend wird immer noch mit unnötigem Ballast voll geschmiert und die Links der Blogroll lassen sich weiterhin nicht über die Sprache steuern, was vermutlich nicht nur mich stark stört. Als vorläufige Lösung läuft bei mir deshalb eine zweite Sidebar, wie ich es schon im Artikel WordPress mehrsprachig mit WPML und Hindernissen beschrieben hatte.

Ich hatte das in den Kommentaren zu dem entsprechenden Artikel bereits angesprochen: Mit WordPress 3.0 sollte es meiner Meinung nach recht einfach möglich sein, mehrsprachige Websites bzw. Blogs aufzubauen. Mit dem Multisite- bzw. Multiuser-Feature der neuen WordPress-Release hat man an sich fast alles, was dafür notwendig sein sollte. Was den Einsatz von WPML für mich bisher zwingend machte, war vor allem die Möglichkeit, per Verzeichnis die Installation in einer anderen Sprache laufen zu lassen. Zusätzlich sind die übersetzten Posts jeweils miteinander verlinkt. Das ist aber vielleicht auch der einzige Knackpunkt.

Dieses kleine Problem kann man sehr wahrscheinlich mit ein paar Zeilen Code und  eventuell mit der Benutzung von Custom-Fields umgehen. WordPress und alle Themes, die für den Einsatz in verschiedenen Sprachen vorbereitet sind, liefern oft auch Sprachfiles mit oder  zumindest wird der Download weiterer Sprachfiles angeboten, sodass sich die Arbeit nach der erfolgreichen Installation und Konfiguration wieder auf das Schreiben und das anschließende Verlinken der Artikel in den verwendeten Sprachen beschränkt. Dummerweise liegen der WordPress-Beta und dem neuen Twenty Ten-Theme noch keine Sprachfiles bei (wenn man mal vom .pot-Files absieht) , sodass mein Plan noch warten muss.

Sobald es diesbezüglich Neuigkeiten gibt, werde ich natürlich baldigst dieses Experiment durchziehen und im Anschluss darüber berichten. Have fun!

XML, JSON und RDF

XML (eXtensible Markup Language) und JSON (JavaScript Object Notation) zu verarbeiten, ist dank der Funktionen, die PHP bereits zur Verfügung stellt, absolut kein Problem mehr. Wenn auch JSON ursprünglich wohl vor allem für AJAX-Anwendungen gedacht war, bevorzuge ich selbst das Format auch in PHP-Anwendungen, wenn ich den Overhead der XML-Daten vermeiden kann und möchte.

Die Geonames-Webservices bieten einen hervorragenden Startpunkt, weil beispielsweise deren Suche mindestens beide zuvor genannten Formate liefern kann. Außerdem sind die Daten vermutlich für die Projekte vieler Webmaster sehr interessant. Meine Beispiele sind eher auf die Demonstration der Daten ausgerichtet. Wer sich für speziellere Anfragen interessiert, sollte sich die Dokumentation der Webservices genauer ansehen.

Um eine ganz allgemeine Abfrage nach dem Wort london zu starten, reicht folgender URL:

http://ws.geonames.org/search?q=london&maxRows=10

Der Parameter maxRows steuert die Anzahl der Ergebnisse. Standardmäßig werden die Daten in XML zurückgeliefert.  Möchte man die Daten im JSON-Format erhalten, fügt man einfach den Parameter type hinzu:

http://ws.geonames.org/search?q=london&maxRows=10&type=json

Wer sich die Liste der Geonames-Services genauer angesehen hat, wird vielleicht bemerkt haben, dass die Resultate der Suche außerdem in RDF (Resource Description Framework) geliefert werden können. Wer in die Welt des Semantischen Webs eintauchen will, sollte sich sowieso näher mit diesem Format beschäftigen. Als Startpunkt möchte ich DBpedia empfehlen, wenn man noch keine Idee dazu hat.

Die SimpleXML-Funktionen von PHP werden bei RDF scheitern. Auch wenn das Format RDF/XML genannt wird, hat die SimpleXML-Klasse Probleme mit den Doppelpunkten in den XML-Entities. Allerdings gibt es auch für dieses Problem bereits verschiedene Lösungen. Die von mir bevorzugte Lösung ist Arc. Das Paket muss nur geladen und auf den Server verfügbar gemacht werden. Wie alle 3 beschriebenen Format nun mit PHP benutzt werden können, veranschaulicht (hoffentlich) folgender Code:

Wer die Ausgabe der Abfrage sehen will, kann sich das Script auch in Aktion ansehen.

Kurzes Update vom 22.12.2017: Bei den Anfragen an die Geonames Services muss der Username als Parameter mit angegeben werden, was im Code jetzt auch ersichtlich ist. Ersetzt einfach USERNAME mit eurem Login.