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

Jump around!

Jump to topIch wurde gerade gefragt, wie das mit dem Pfeil am unteren rechten Bildschirmrand funktioniert. Der Pfeil, der selbst beim Scrollen auf seiner Position bleibt und einen per Klick wieder nach oben zum Seitenanfang befördert.

Im Grunde muss man dafür nur am Ende der Seite ein Bild einbauen – natürlich vor dem letzten </body> – und das Ganze dann mit CSS fixieren.

Ein Bild mit Link drumherum sieht folgendermaßen aus:

top

Damit der Link auch wirklich zum Seitenanfang springt, muss <body> so abgeändert werden:


CSS macht den Rest:

img#toparrow {
    position: fixed;
    right: 0px;
    bottom: 10px;
    border: 0;
}

Über right und bottom lässt sich der Abstand zum “Boden” und zum rechten Rand ändern.

Die entsprechende Grafik kann man sich hier herunterladen.

Hotlinking unterbinden

Bei der heutigen Log-Inspizierung ist mir aufgefallen, dass ein ebay-Händler ohne Erlaubnis ein Bild von mir für seine Auktionen verwendet und auch noch direkt darauf verlinkt (Hotlinking).

Im Prinzip hab ich ja nichts gegen eine Weiterverwendung meiner Bilder, ich hab sie ja schließlich auch unter eine Creative Commons Lizenz gestellt. Nur sollte diese dann auch eingehalten werden. Leider hat der Händler nirgends auf seinen Auktionsseiten meinen Namen untergebracht, noch die korrekte Lizenz aufgeführt und außerdem handelt es sich ja um ein kommerzielles Angebot.

HotlinkingEin wirksames Mittel gegen solche Trafficdiebe ist das Apache Modul mod_rewrite, mit dem man alle Aufrufe einer Datei von einer bestimmten Seite ausgehend zu einem neuen Ziel umleiten kann. So lassen sich fremdverlinkte Bilder einfach austauschen. Die gewünschte rewrite-Regel schreibt man einfach in eine .htaccess-Datei im Stammverzeichnis der Webseite.

Ein meinem Fall haben alle Aufrufe einen Referrer der mit “http://cgi.ebay.de/” beginnt, was ein gezieltes Umleiten auf eine alternative Datei mit folgenden Anweisungen ermöglicht:

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://cgi.ebay.de/.*$ [NC]
RewriteRule .*.(jpg|gif)$ /download/hotlinking.ebay.png [NC,L]

Es werden also alle in ebay verlinkte Bilder von meinem Webspace durch diese Datei ersetzt. Zu beachten ist, dass die neue Datei nicht die gleiche Endung hat wie die, die überwacht werden (jpg|gif), hier also ein png-Bild.

Continue reading Hotlinking unterbinden

Greasemonkey und StudiVZ

Greasemonkey heißt eine Erweiterung zum Webbrowser Mozilla Firefox, die die Implementierung des Konzeptes Active Browsing ermöglicht. Durch Greasemonkey wird es dem Nutzer erlaubt, eigene JavaScript-Dateien im Browser auszuführen, die das Erscheinungsbild und Verhalten der angezeigten Webseite individualisieren können, ohne einen Zugriff auf die eigentliche Webseite zu benötigen. Dadurch ist es beispielsweise möglich, Webseiten um Funktionen zu erweitern, Fehler in der Darstellung zu beheben, Inhalte von anderen Webseiten einzubinden und wiederkehrende Aufgaben automatisch zu erledigen.Wikipedia

Da ich mich regelmäßig beim Einloggen ins StudiVZ ärgere, dass offensichtlich die Cookies nicht richtig funktionieren (nur unter Linux?) muss Abhilfe her.

Das Script “StudiVZ: Autologin” von Marcell Spies speichert die Logindaten lokal auf dem eigenen Rechner und führt, wenn nötig, automatisch einen Login durch.

Zwei weitere Interessante Scripte sind der “StudiVZ Image Deblocker v2.0” und “StudiVZ: Gemeinsame Gruppen hervorheben”, welches auf anderen Profilseiten die Gruppen hervorhebt, in denen man selbst auch Mitglied ist.

Der Image Deblocker entfernt das space.gif das man jedes mal untergejubelt bekommt, wenn man ein Foto aus einem Fotoalbum speichern möchte und gibt so das eigentliche Foto zum speichern frei.

Achja, Greasemonkey selber gibt es hier und eine Liste weiterer Userscripte für das StudiVZ ist hier zu finden.

mIRC Multiserver

Manchmal hat man das Verlangen im IRC nicht nur in einem Netzwerk zu sein. Damit man nicht jedes mal die auf die Server manuell verbinden muss, lohnt sich ein Multiserver-Script. Von hier wird jede Aktion geregelt: die Verbindung wird aufgebaut, entsprechende Nicknames werden gesetzt und die gewünschten Channel betreten.

Damit es nicht zu Konflikten kommt, sollten alle sonstigen Automatismen von mIRC deaktiviert werden. Es sollte also kein Channel über die Channelliste als Join on Connect gekennzeichnet und kein Haken bei Connect on Startup gesetzt sein.

Continue reading mIRC Multiserver

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.

Datenbank Backup

Ich habe mir ein bisschen Gedanken über Backups von meiner WordPressinstallation gemacht. Durch einen Artikel im WordPress Codex ist dann ein automatisiertes Backupscript herausgekommen, dass zeitgesteuert lokal und auf einen entfernten Rechner mittels SSH sicher sichert :)
Näheres ist unter “weiterlesen” zu finden.

Continue reading Datenbank Backup