WordPress: Mit PHP und XML-RPC bloggen

WordPress stellt neben dem WordPress-Backend noch eine weitere Administrationsmöglichkeit zur Verfügung: das XML-RPC Interface. Es handelt sich hierbei um eine Schnittstelle, die die Kommunikation zwischen einer externen Anwendung und einem WordPress-Blog ermöglicht. Die Blogeditoren MarsEdit und Windows Live Writer machen beispielsweise davon Gebrauch.

Mit einfachen Mitteln kann man diese Schnittstelle auch mit einem PHP Script ansprechen. So lässt sich ein Blogeintrag hinzufügen oder bestehende Einträge auslesen und weiterverarbeiten. Freundlicherweise liefert WordPress eine fertige Klasse für den Zugriff gleich mit. Man muss diese also nur mit dem passenden Befehl füttern und bekommt das gewünschte Ergebnis zurück.

Im folgenden Beispiel beschreibe ich kurz wie man einen Beitrag verfasst und per XML-RPC übermittelt. Zuerst einmal muss man die Schnittstelle im Blog aktivieren. Dafür setzt man im WordPress-Backend unter EinstellungenSchreiben einen Haken bei “WordPress, Movable Type, MetaWeblog und Blogger XML-RPC Schnittstelle aktivieren“.

Continue reading WordPress: Mit PHP und XML-RPC bloggen

WordPress 2.8 und das automatische Update

Seit der Version 2.8 scheint es diverse Probleme mit der Core-Update Funktion von WordPress zu geben. Bei mir (und auch bei Anderen) bricht der Aktualisierungsvorgang nach der Eingabe der FTP-Zugangsdaten mit folgender Fehlermeldung ab:

Unable to locate WordPress Root directory.

In der deutschen Übersetzung:

Das WordPress-Wurzelverzeichnis konnte nicht ermittelt werden.

Abhilfe – zumindest bei meinem Hoster All-Inkl – schafft die Verwendung von PHP5 im Fast-CGI Modus. Hierfür erstellt man eine .htaccess-Datei und lädt diese in das Verzeichnis wp-admin im WordPress-Verzeichnis. So wird sichergestellt, dass nur das Backend und nicht das ganze Blog im Fast-CGI Modus läuft. Die Datei muss folgenden Inhalt haben:

AddHandler php5-cgi .php

Die Aktualisierung sollte jetzt wie gewohnt erfolgreich durchlaufen, WordPress fragt nicht nach den FTP-Zugangsdaten.

Hat das Update funktioniert, ist es ratsam die .htaccess-Datei wieder zu entfernen, oder zumindest umzubenennen.

Die vorgestellte Lösung funktioniert beim Hoster All-Inkl, andere Anbieter kann ich leider nicht testen.

via

paragraph

ParagraphEs war mal wieder soweit, ein neues Design musste her. Mein mittlerweile viertes WordPress Theme für diese Seite ist auf den simplen Namen paragraph getauft. Was der Name genau zu bedeuten hat, bleibt, wie auch beim Vorgänger, offen.

In erster Linie handelt es sich um eine Neugestaltung des Vorgängers, die einige Eigenschaften wieder aufgreift. So kommt die farbliche Inspiration wieder vom gleichen Colorscheme.

Das Plugin Simple Tagging habe ich durch die Weiterentwicklung Simple Tags ersetzt, die einen Aufsatz für die WordPress eigene Tagstruktur darstellt. Beim Caching ersetzt ab jetzt wieder WP-Cache die hauseigene Caching-Funktion von WordPress WP-Cache erstmal wegen Probleme mit Twitter for WordPress wieder deaktiviert.

Strukturell ist die Seite Über dem Kolophon und dem Bereich Social gewichen. Ein Kolophon ist ein Schriftstück und beschreibt im Verlagswesen Details zur Produktion eines Buches (danke Wikipedia) – hier ist eine Übersicht über die verwendeten Techniken und Werkzeuge hinter dieser Seite. Social fasst meine Aktivitäten im restlichen World Wide Web zusammen.

Von Flickr zu Ipernity

IpernitySo, es ist vollbracht. Ich bin von flickr auf Ipernity umgestiegen. Ein Schritt, der eigentlich schon längst überfällig war. Warum, ist hier nachzulesen.

Zuerst aber einmal, was ist eigentlich Ipernity? Im Grunde beherrscht es die selben Grundfunktionen zum Veröffentlichen und Finden von Bildern. Genauso wie bei flickr werden unterschiedliche Bildgrößen bereitgestellt, die sich durch fertige Codeschnipsel bequem in einen Blogeintrag einbetten lassen. Ebenfalls wird einem bei der Veröffentlichung der Bilder die freie Wahl der Lizenz gelassen.

Der Aufbau der Seite ist sehr an flickr angeleht, man sollte sich also relativ leicht zurecht finden. Der Organisationsassistent zur Batchverarbeitung der Bilder sieht dem flickr-Pendant sogar erschreckend ähnlich.

Weitreichender im Funktionsumfang ist Ipernity hingegen bei der Verarbeitung von Medien. So können neben Fotos auch Videos und Audiodateien, beispielsweise Podcasts, abgelegt werden. Desweiteren besteht die Möglichkeit zu Bloggen und Freunde in eigene Netzwerke einzubinden, was das Bild einer Community verstärkt.

Natürlich stellt sich erstmal die Frage, wie 115 Bilder mit Tags und Beschreibungen importieren. Flickr ist einem dabei nicht gerade behilflich. Ipernity umso mehr.

Mit den hauseigenen Greasemonkey Scripten funktioniert das ganze mit ein paar Klicks, relativ schnell und ohne viel Aufwand.

Zur Auflistung der letzten eingestellten Fotos in ein WordPress Blog stellt Ipernity die passenden RSS Feeds bereit, die von dem Plugin ipeRSS verarbeitet und angezeigt werden.

Meinen flickr Account werde ich erst noch eine gewisse Zeit bestehen lassen, bis ich alle Links und Fotos auf Ipernity umgebogen hab.

Zu meinem Profil geht es übrigens hier.

Neues Design

Wie es sicher schon aufgefallen ist, habe ich mich vor ein paar Tagen mal wieder an die Neugestaltung meiner Seite gemacht. Das neue Design ist von Grund auf neu gemacht und erstmal auf den Namen “divide” getauft. Was der Name genau zu sagen hat, weiß ich auch nicht so wirklich. Vielleicht die Gliederung der einzelnen Seitenelemente, wie die drei Bereiche am Fuß der Seite.

ScreenshotMit der Einführung des Designs habe ich auch WordPress neu installiert um von nun an auf UTF-8 zu laufen. Dafür war es leider Nötig in den alten Beiträgen alle Umlaute und sonstige Sonderzeichen durch das entsprechende HTML-Kürzel zu ersetzen, da sonst das Import Script von WordPress die Beträge nach einem Sonderzeichen abgebrochen hat.

Desweiteren habe ich die Zahl der Plugins drastisch reduziert. Getaggt wird jetzt mit dem viel schnelleren Simple Tagging und die Auslieferung der Seiten wird mit WP-Cache beschleunigt, um nur ein paar Neuerungen zu nennen. Eine ausführliche Liste der eingesetzten Plugins gibt es hier.

Das neue Design war auch endlich mal ein Grund sich die Widget-Funktion von WordPress anzusehen. So sind die Sidebar auf der rechten Seite und die drei Bereiche im Seitenfuß per Drag & Drop mit Inhalt zu befüllen, was ein eventuelles Bearbeiten im Quelltext des Templates überflüssig macht.

divide ist ein Versuch felixtriller.de ein wenig seriöser, strukturierter und vor allem übersichtlicher zu gestalten.

Pro Backup

Pro-BackupBackups sind wichtig. Deshalb hat WordPress Deutschland diese Woche zur Backup-Woche ernannt und direkt die Initiative Pro-Backup ins Leben gerufen.

Ich selber sichere jede Nacht meine Datenbanken mittels Cronjob. Der Dump wird dann erstmal lokal auf unserem VServer gespeichert und per SSH auf meinen Heimserver kopiert. Wie das ganze funktioniert wird hier beschrieben. Dateien und Ordner meiner WordPress-Installlationen werden nur nach Änderungen von Hand gesichert.

Bis jetzt habe ich zum Glück noch kein Backup wieder einspielen müssen, aber wenn es mal so weit ist, werde ich froh sein, dass ich regelmäßig eins gemacht hab.

Also, fröhliches Backuppen!

fuck the spammers

Da ich hier täglich um die 100 Trackback-Spams löschen darf, habe ich mich jetzt mal ein bisschen mehr mit Spambekämpfung befasst. Zuerst einmal läuft hier Simple Trackback Validation, was bei jeden eingehenden Trackback überprüft, ob auf der Herkunftsseite auch wirklich auf meine Seite verlinkt wird. Ist dies nicht der Fall, wird der Trackback nicht freigeschaltet und in der Datenbank als Spam markiert.

Weiter geht’s mit Akismet, ein wirklich geniales Plugin. Erkennt jeden Spamkommentar und filtert diese entsprechend aus. Als Spam markierte Kommentare und Trackbacks lassen sich dann per Klick massenlöschen.

So besteht mein tägliches Spambekämpfungsritual darin eben diesen Knopf zu drücken. “Akismet hat deine Seite vor 1,641 Spamkommentaren bewahrt.” Sehr gut.

Da die ganze Trackbackscheiße natürlich auch Traffic verbraucht habe ich noch mal ein bisschen nachgeforscht. Die Trackbacks scheinen von einem Programm zu kommen, dass sich als “TrackBack/1.02” ausgibt. Also warum nicht einfach diesen Useragent aussperren? Mit google hab ich dann diesen Blogeintrag gefunden. Also folgendes in die .htacces-Datei:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^Java
RewriteRule ^.*$ - [F]
RewriteCond %{HTTP_USER_AGENT} TrackBack/1.02
RewriteRule ^.*$ - [F]

Java wird direkt mit geblockt, weil “Java/1.4.2_03” auch einige Male in den Logs aufgetaucht ist.

Ich hoffe die Spamflut legt sich jetzt langsam.

wpSpoiler

Da ich mir vorgenommen hab in nächster Zeit etwas über Filme zu schreiben, hatte ich das verlangen nach einem Plugin, dass den Leser vor Spoilern schützt. Das wp-spoiler Plugin von Navid Azimi ist irgendwie nicht ganz das, was ich suche.

Ein anderes Plugin mit dem Namen “Simple Spoiler Enhanced” schien mir da schon die bessere Lösung. Leider scheint die Seite des Autors nicht mehr erreichbar zu sein, der Code findet sich aber noch bei WordPress Plugins. Durch dieses Plugin inspiriert, habe ich mich an mein eigenes Plugin gesetzt: wpSpoiler.

Das ganze wird hier weiter beschrieben. Feedback ist natürlich erwünscht.

Spoiler: [spoiler]Bruce Willis ist ein Geist![/spoiler]

https zum letzten…

Ich habe mich jetzt schon lange Zeit mit HTTPS für dieses Blog herumgeschlagen. Da WordPress (leider) die URLs in der Config fest setzt ist immer nur HTTPS oder HTTP möglich. Das Plugin Force-SSL hilft einem dann, wenigstens alle die über eine nicht verschlüsselte Verbindung reinkommen umzuleiten.

Leider ist das auch nicht das gelbe vom Ei. Bei eingeschaltetem SSL funktionieren einige Sachen nicht mehr so wie sie sollten. Man kann selber keine Trackbacks setzen, Trackbacks auf die eigene Seite gehen auch ins Leere.

Ich hab mich jetzt davon abgewendet von einer permanenten Verschlüsselung Gebrauch zu machen. Das Plugin Secure-Admin hilft einem wenigstens das Backend sicher zu besuchen.

Wenn man sich jetzt einloggt (nicht nur als Admin) läuft das ganze über eine HTTPS Verbindung. Wunderbar.