Das inoffizielle WordPress-Handbuch

Ein Beitrag den ich schon lange Mal schreiben wollte. Eigentlich aber nur, um meinem Frust gegenüber der Entwicklung unter WordPress mal ein wenig Luft zu machen. Die Ironie: Das Blog hier läuft ja ebenfalls unter WordPress (wie viele andere Seiten auch). Nur habe ich sehr wenig selbst entwickelt und das meiste einfach eingekauft und zusammengebaut.

Der Source ist eine Katastrophe. Eigentlich müsste man alles von null anfangen, als eine Art Enterprise-Edition für „Nicht-Bastler“.

global

Keine Funktion ohne global. Das muss so sein! Ansonsten kann man ja nicht entwickeln. Falls etwas fehlt, einfach per global ziehen. Das macht den Code schließlich sehr leserlich und man weiß immer ob und mit was die Variable gefüllt ist. Geniale Idee! Zudem kommen noch tausende globale Funktionen, welche man einfach kreuz und quer nutzen kann.

Eigentlich ganz praktisch. So muss man sich wenigstens Gedanken über Prefixes machen! Ansonsten wäre das Leben ja langweilig und man könnte gar keinen spannenden Seiteneffekte generieren, die niemals jemand nachvollziehen kann.

Man kann alles als Post abbilden

Ein Tabellenplugin? Das ist ein Post! Caching? Einfach als Post! Was strukturiert sein muss, kommt einfach als serialisierter String in die Datenbank, damit man bloß nichts richtig suchen kann. Somit wird UPDATE als SQL-Befehl überflüssig. Vorteil: Man muss nicht so viele Tabellen anlegen. Tabellen sind schlecht. Alles ist ein Post / Post-Type. So kann man die ganze Welt erklären.

Updates, Updates und Updates

Wer eine Extension auf dem Markt anbietet, hat diese binnen einer Woche mindestens zwei Mal zu aktualisieren. Ansonsten gilt diese als inaktiv! Bedeutet: Wenn man zwei Wochen im Urlaub ist, ist die Instanz entweder gehackt, oder man muss 32948 Updates nachholen. Einfach mal alles ein Jahr liegen lassen und nichts tun? Unmöglich.

Aber keine Sorge, in ein paar Tagen kommt schon die neue WordPress-Core-Version raus. Dann wieder 1-2 Zero-Day-Exploits und automatische Patches, aber dann ist alles wieder in Ordnung. Lieber ein Update mehr, als direkt anständigen Source abliefern.

Mehr PlugIns für mehr Sicherheit

WordPress mit vielen PlugIns zu betreiben ist von Haus aus nicht so schlau, da jeder Kobold da draußen denkt, er sei Entwickler. Also gibt es im Netz tausend Beiträge, wie man seine WordPress-Installation sicherer bekommt. Als erstes bitte dies, und dann das PlugIn installieren. Dann noch hier eine .htaccess, hier ein paar Verzeichnis-Berechtigungen umbiegen und am Ende hat man: Sicherheit! Yeah.

Klassenverbot!

Wer eine Klasse unter WordPress definiert, wird wohl gesteinigt (oder so). Im Core sind davon ja nicht so viele zu finden. Statt dessen findet man auch hier nur globale Funktions-Sammlungen. Das wär ja gar nicht so schlimm, wenn man nicht vorher eine ausführen müsste, um eine andere ausführen zu können. Passt auch super zum global-Konzept.

Debugging ist übrigens verboten – oder wird es automatisch. Setzt man einen Breakpoint, bekommt man im aktuellen Kontext so viele Variablen, dass die IDE am liebsten direkt kotzen möchte.

The Loop

Wer sich den Kram ausgedacht hat, der sollte wirklich den Beruf wechseln. Das hat mit Softwaredesign nicht mehr viel zu tun.

Über

Jahrgang 87, gelernter Softwareentwickler und fast ein Jahrzehnt Erfahrung im Bereich Web-Entwicklung mit PHP und Web-Design. Diese Eigenschaften machen mich zu einem geeigneten und geschätzten Ansprechpartner für die Umsetzung Ihres Projektes. Weiterhin bin ich seit Ende 2013 Magento Certified Developer.

4 Kommentare


  • Du sprichst mir aus der Seele! Vor allem stört mich, dass ich bei jedem neuen WordPress-Projekt zunächst einen Haufen Features ausschalten muss, die ich nicht benötige. Kommentare, Widgets, Trackbacks, RSS-Feeds und was auch immer benötige ich gerade bei Firmenpräsenzen fast nie. Seit kurzem platziert WP sogar ungefragt Code für Emoji-Unterstützung im meiner Seite … Zeit, sich nach Alternativen umzusehen?

    Für mein aktuelles Portfolio habe ich das dateibasierte CMS kirby verwendet. Fazit: traumhafte Performance und das Schreiben der Templates macht auch mehr Spaß, da die API von jQuery inspiriert ist. Unter der Haube sieht der Code etwas ungewöhnlich aus, da hier viele moderne PHP-Funktionen wie beispielsweise Closures verwendet werden, sodass vieles davon an JS-Code erinnert. Manch eine mag sich darüber mockieren, dass etablierte Best Practices aus PHP keine Anwendung finden, ich persönliche fühle mich mit kirby aber sehr wohl, da die Code-Struktur im Rahmen eine kleineren bis mittelgroßen Website sehr gut funktioniert und es eine gute Unterstützung für Custom Fields gibt. Leider kostet kirby Geld (Kommerzielle Lizenz ca. 95 € pro Website), es gibt aber auch kostenfreie Alternativen wie das Grav CMS, welches einen nahezu identischen Ansatz verfolgt. Es gibt auf jeden Fall Alternativen zu WordPress und wir sollten uns auch trauen, diese einzusetzen.

    Nicht, dass ich WordPress komplett verteufeln würde, aber langsam schmecken mir immer mehr Dinge daran nicht mehr. An dieser Stelle muss aber auch lobend erwähnt werden, dass das Backend von WP an vielen Stellen gut durchdacht ist, was nicht zuletzt einem großen, engagierten team zu verdanken ist, welches sich um gute Usability und visuelle Konsistenz bemüht. Aber auch der schönste Anstrich kann nicht über den grausigen Code hinwegtäuschen. Auf ein Rewrite des WordPress-Codes werden wir wohl lange warten können, da dies sicher den Tod der Plattform und ihrer Erweiterbarkeit bedeuten würde.

    • Danke für Deine ausführliche Antwort! Freut mich, dass ich nicht der einzige bin, der so denkt. Gegen neue Strukturen etc. habe ich nichts. Ich hätte nur etwas Sorge, dass meine aktuelle Seite etwas bei Google abrutschen könnte, wenn man sie portiert. Die aktuellen Seiten werde ich also wohl auf WordPress lassen – allerdings werde ich bestimmt keine neuen WordPress-Projekte mehr starten.

      Egal wieviel Einarbeitung das Ganze für mich braucht, die Zeit spare ich hoffentlich am Ende!

      Und ja, das Backend ist schwer okay – solange man nichts erweitern möchte. Ansonsten fehlt es auch wieder an gewissen Klassen und Helfern. Ich wünsche mir einfach, dass ich ganz einfach Tabellen, Formulare und anderes mit ein paar Objekten zusammenbauen kann (so wie in Symfony 2 oder Magento). Dann sieht nicht nur alles gleich aus, sondern ist auch Updatefähig mit dem Core und alles wäre im gleichen look and feel.

      Insgesamt drücke ich mich immer vor WordPress-Aufgaben, weil es in Summe einfach null Spaß macht und nur ein großer Krampf ist.

      Nein, ich erwarte auch kein Rewrite. Die aktuelle Version könnte man ja als „Sandkastenversion für Spielereien“ beibehalten und nur noch Sicherheitspatches machen. In einer Enterprise-Version wäre dann ein komplett neuer Core enthalten, welcher nichts außer dem Namen gemein hat. Hier könnte man dann auch endlich mal ein anständiges URL-Model einführen (aktuell ist es ja der größte Krampf, wenn man eine existierende Seite auf eine neue Domain umziehen möchte). Und dann kann man auch endlich mal einen professionellen Weg gehen, mit Zertifizierungskonzept etc.

      Im aktuellen Stand nehme ich WordPress nicht mehr ernst.

Kommentar verfassen