WordPress und ich

…das ist eine etwas schwierige Beziehung. Als ich WordPress das erste Mal sah, war ich relativ begeistert, wie simpel das Interface ist und was man damit alles machen kann. Diese Begeisterung legte sich dann allerdings relativ schnell, als ich an dem Theme für unsere Kunden alles mögliche verändern musste. Da stieß ich dann sehr schnell an die Grenzen von WordPress und musste mit Plugins und eigenen Funktionen aushelfen. Und da kann man dann nicht umhin zu bemerken, wie schlecht WordPress dokumentiert ist und wie chaotisch es im Quelltext aussieht.

Seitdem verbindet mich und WordPress eine etwas merkwürdige Beziehung. Ich kenne mich mittlerweile eine ganze Ecke besser damit aus und es gibt nicht viele Sachen, die ich mit WordPress nicht realisieren könnte. Aber es ist auch nicht gerade meine Traum-Software. Warum ich es dann trotzdem benutze? Nun, WordPress hat trotz aller Probleme viel Potential, und ich habe noch kein anderes System gefunden, dass dazu eine brauchbare Alternative wäre. Außerdem kenne ich mich wie gesagt mit WordPress recht gut aus mittlerweile, so dass jetzt WordPress zu benutzen erst mal einfacher ist als drei Einarbeitungsmonate später mit einem anderen System zu arbeiten. 😉

Plugins

Einer der großen Vorteile von WordPress ist die Leichtigkeit, mit der man die Funktionalität mittels eines Plugins erweitern kann. Einer der großen Nachteile ist, dass das leider oft auch nötig ist. Auf dieser Seite habe ich im Moment 21 Plugins installiert, und gut die Hälfte davon tun Sachen, um die sich WordPress selber kümmern könnte. Nur wenige sind echte Erweiterungen des Grundsystems im eigentlichen Sinne eines Plugins.

Komische Dinge

Immerhin vier Plugins benutze ich für Funktionalität, die in WordPress komisch oder gar fehlerhaft gelöst ist. Das ist schon mal nicht wirklich glorreich.

123 Anonymer Versionscheck sorgt dafür, dass WordPress bei Update-Checks nicht Informationen mitschickt, die dafür gar nicht gebraucht werden (URL des Blogs zusammen mit einer Liste aller Plugins). Einfach aus Prinzip: Die Infos sind nicht nötig, und es ist eine Frechheit, sie einfach zu übertragen und das auch noch ohne eine echte Ankündigung einzubauen (neu in WP 2.3). Und wenn Matt Muellenweg noch so oft versichert, dass die am Ziel gar nicht gespeichert werden…

Die Debatte um das nofollow-Attribut ist ja schon älter. Ich glaube nicht, dass seit seiner Einführung der Kommentar-Spam merklich gesunken ist. Trotzdem klebt WordPress das immer noch an alle Links. Mit Follow-URL wird man es wieder los, aber wirklich, was soll das überhaupt? Gegen Spam helfen am Ende nur aktive Mittel wie Akismet, Spam Karma, Bad Behavior etc. Spam-Kommentare sollen in meinem Blog außerdem sowieso nicht stehen bleiben bzw. überhaupt erst veröffentlicht werden.

Eine ganz merkwürdige und eigentlich peinliche Sache ist WordPress‘ Umgang mit Anführungszeichen. WordPress ersetzt die üblichen geraden Anführungszeichen durch die eigentlich richtigen. Schön, leider benutzt WordPress dafür immer das amerikanische Format (auch in der deutschen Version von WP) und vertut sich dabei auch öfters mal (habe früher mehrmals zwei schließende oder zwei öffnenden Anführungszeichen nacheinander gefunden). Da braucht man erst ein Plugin wie Intypo, um das zu korrigieren.

Und schließlich Delete Comment IP. Man kann sich streiten, inwiefern das ein Defekt von WordPress ist. Aber ich zumindest finde in der heutigen Zeit sollte man nicht sinnlos Daten speichern, wenn es nicht sein muss. Und das Speichern der IP an allen Kommentaren kann man in WordPress leider nicht direkt beeinflussen.

Fehlende Funktionalität

Manche Dinge fehlen in WordPress auch einfach. Eine Liste der x aktuellsten Kommentare gibt es in fast allen Blogs, aber meines Wissens nach (siehe dazu auch den nächsten Abschnitt) gibt es dafür in WP keine einfache Funktion. Da muss man eine Funktion mit einer SQL-Query selber schreiben oder ein Plugin dafür benutzen.

Ebenfalls Funktionalität, die WordPress von Haus aus leider fehlt: Aus dem System heraus Backups erstellen (BackupWordPress), für alle die das Wort „SQL-Dump“ überfordert, und eine irgendwie brauchbare Upload-Funktion (Flexible Upload). Und egal mit welchem Editor man arbeitet, man kommt eher nicht um ein Plugin herum, sei es nun TinyMCE Advanced für den graphischen Editor oder AddQuicktag für die Code-Ansicht. Und um Spam-Schutz, der über Akismet hinausgeht, muss man sich auch selbst kümmern: Irgendeine Art von Captcha-Funktion ist in WP nicht integriert für die standardmäßig vorhandenen Kommentar-Formulare (ich benutze z.B. Math Comment Spam Protection).

Das neue Tag-System, welches mit WP 2.3 eingeführt wurde, enthält sogar absichtlich keine Oberfläche oder sonstige weiterreichende Funktionalität, so dass man auf Plugins wie Simple Tags zurückgreifen muss. Das muss man nicht verstehen, oder?

Zuletzt noch zwei Sachen, deren Fehlen im Core nicht wirklich dramatisch ist, aber die doch so verbreitete Funktionalitäten darstellen, dass man sich dafür eine Lösung gewünscht hätte: Die Möglichkeit, sich Benachrichtigungen über weitere Kommentare schicken zu lassen, ist wichtig für alle Kommentierer, die noch nicht so richtig warm geworden sind mit RSS (Subscribe To Comments). Und welche Webseite kommt heutzutage schon ohne ein Kontaktformular aus, wo man sich kaum noch trauen kann, seine E-Mail-Adresse einfach so zu veröffentlichen (WP-ContactForm)?

Versteckte Funktionalität

Schon mal in den WordPress-Quelltext geschaut? Geordnete PHPDoc-Kommentare sucht man dort größtenteils vergeblich. Auf der WP-Hackers-Liste gibt es Programmierer, die diese Doku nach und nach ergänzen, aber das ist relativ hoffnungslos, wenn die ursprünglichen Entwickler die Doku nicht gleich selbst schreiben (wofür ich als Programmierer keinerlei Verständnis habe…). Was ich damit sagen will: Es gibt keine vernünftige API-Dokumentation zu WordPress, wie man sie z.B. aus einem komplett kommentierten Quelltext generieren könnte. Im Codex gibt es Funktionslisten, aber erstens muss man die dort erst mal finden (selten so eine schlechte Suchfunktion gesehen!) und zweitens sind diese weder vollständig noch aktuell. An vielen Stellen wird im Codex noch vom „aktuellen“ WP 1.5 geredet…

Die passende Funktion selbst für einfachste Aufgaben zu finden, ist also gar nicht so einfach. Ein Beispiel: Die Ausgabe der aktuellsten x Beiträge findet man in fast allen Blogs, das WP-Default-Theme enthält sie aber nicht. Dass es aber sehr wohl eine Funktion dafür gibt, habe ich erst herausgefunden, nach dem ich diese Ausgabe ein halbes Jahr lang über das Plugin Fuzzy Recent Posts realisiert hatte: Wenn man der Funktion wp_get_archives den Parameter „type=postbypost“ übergibt, kriegt man die Postliste. Ja klar, sieht man am Funktionsnamen ja auch sofort…

Fazit

Weiter oben habe ich 12 Plugins aufgezählt, 11 davon benutze ich im Moment selber. Die meisten ergänzen nicht wirklich ganz neue Funktionalität, sondern modifizieren das Verhalten von WordPress auf die eine oder andere Weise. Und manchmal wünschte ich mir wirklich, dass WP das ein oder andere auch einfach mal von Haus aus könnte. Denn zusätzlich laufen ja auch noch einige Plugins, die tatsächlich etwas Neues umsetzen.

Für die Zukunft würde ich mir wünschen, dass etwas mehr Ordnung im WP-Quelltext einzieht und alle Funktionen mit brauchbarer Dokumentation versehen werden. Aber erst wenn die Unterstützung für PHP 4 irgendwann fallen gelassen wird, ist der Weg wirklich frei für eine Modernisierung von WordPress, auch in Richtung Objekt-Orientiertheit.

Ich selbst werde mir derweil irgendwann doch mal wieder andere CMS anschauen müssen. Vielleicht mal Joomla testen, wenn die endlich die 1.5er Version fertig kriegen. Fürs erste läuft diese Seite mit WordPress, aber das „proudly“ tue ich erst wieder in die Fußzeile hinein, wenn sich bei WordPress ein paar Dinge geändert haben. 😉

Update Mar 2012: Fünf Jahre später, und ich bin WordPress doch treu geblieben. Mittlerweile hat sich echt viel getan bei WordPress, und viele meiner Kritikpunkte von damals sind überholt. Das „proudly“ steht nun auch wieder im Footer. Ich muss aber zugeben, dass ich trotzdem noch regelmäßig echte WTF-Momente erlebe mit WordPress…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Bitte beachte die Kommentarregeln: 1) Kein Spam, und bitte höflich bleiben. 2) Ins Namensfeld gehört ein Name. Gerne ein Pseudonym, aber bitte keine Keywords. 3) Keine kommerziellen Links, außer es hat Bezug zum Beitrag. mehr Details...

So, noch mal kurz drüber schauen und dann nichts wie ab damit. Vielen Dank fürs Kommentieren! :-)