XML-Daten mit WordPress anzeigen

Komische Überschrift? Finde ich auch. Aber „XML-Daten mit WordPress anzeigen“ ist nur ein Teil des Longtail, mit dem Leute hier von den Suchmaschinen auf mein Blog losgelassen werden. Daran ist ja erst mal nichts auszusetzen. Ganz im Gegenteil! Problematisch wird es nur, wenn ich in etwa verstehe um was es geht und dann sehe, dass Code von steinzeitlichen Artikeln aufgegriffen wird, der nicht mehr dem aktuellen Stand der Dinge entspricht. Und weil bei mir gerade das Gegenstück zu einer Schreibblockade ausgebrochen ist, will ich da mal ein paar Informationen hinterher schicken. „XML-Daten mit WordPress anzeigen“ weiterlesen

Wordcamp 2010 Mailand

Ich hatte mich vor einiger Zeit für das Wordcamp 2010 in Mailand angemeldet. Der Veranstaltungsort liegt für mich ja „quasi um die Ecke“. Natürlich wäre ich viel lieber nach Berlin gefahren, um auch mal ein paar persönliche Kontakte zu knüpfen. Allerdings lassen meine eh schon knappen Zeitressourcen solche zusätzlichen Ausflüge im Augenblick nicht zu.

Ich muss gestehen, dass ich mich in den letzten 5 Jahren hier in Italien recht wenig um die italienische Bloglandschaft gekümmert habe. Zaghafte Versuche meinerseits gab es zwar, meine Kenntnisse der Sprache lassen mindest die Rolle eines stillen Beobachters zu, aber ich habe mir bisher nur wenig Mühe gegeben, da wirklich tiefer einzusteigen.

Aber ab morgen wird das vielleicht anders. Das Programm sieht erst einmal viel versprechend aus, auch wenn ich das Gefühl nicht loswerde, dass es da noch so an richtigen „Krachern“ fehlt. Kürzlich wurde leider noch bekanntgegeben, dass der angekündigte Vortrag von Derrick de Kerckhove aus organisatorischen Gründen nicht stattfinden wird. Wirklich schade!

Meine Hoffnung richtet sich auch darauf, einige interessante Gesprächspartner zu treffen, die mir etwas mehr darüber erzählen können, womit Blogger in Italien so zu kämpfen haben. So gibt es beispielsweise mir bekannte Fälle, bei denen man unter Berufung eines Gesetzes aus dem Jahre 1948, welches die Presse wohl ursprünglich schützen sollte, Blogs schließen ließ .

Ein weiteres Gesetz behindert beispielsweise ein wichtiges Detail beim Wordcamp in Mailand. So verneint Wolly, der sich um die Organisation kümmert, die Frage, ob es eine Wi-Fi Verbindung geben wird. Das bloße Bereitstellen würde ihn dazu verpflichten, die Ausweise der Teilnehmer zu kopieren, verschiedene Benutzernamen und Passwörter zu vergeben und alle Verbindungsdaten eine Ewigkeit aufzuheben.

Das dafür verantwortliche (und wohl auch umstrittene) Pisanu-Gesetz ist sicher nur einer unter vielen Steinen, die – speziell in diesem Fall im Namen des Antiterrorismus – dem italienischen Blogger im Weg sind. Andere Probleme, die dem Deutschen schwer auf dem Magen liegen, sind hier vielleicht (noch) kein Thema. Auch das werde ich morgen und am Samstag einmal genauer unter die Lupe nehmen.

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.