Facebook
Twitter
Google+
Kommentare
17

Warum WordPress scheiße ist!

wordpress

Achtzehn Prozent des Internets laufen auf WordPress. Muss also ein ziemlich geiles Teil sein. Oder? Wenn man mit Nutzern des Tools spricht, dann teilen viele die Meinung, dass das System echt gut ist. Sobald man einen Techniker drauf anspricht, sieht man im selben Moment, wie sich seine Nackenhaare aufstellen und sich Schaum in den Mundwinkeln bildet.

WordPress gilt unter Softwareentwicklern als ein wirklich schreckliches Stück Software, mit dem man nichts zu tun haben will. Der Source-Code ist mies und die Anbindung von eigenem Code in Plugins und Themes schrecklich. Da ich derzeit selbst recht viel mit dem Blog-System zu tun habe, wollte ich mal aufschreiben, wo WordPress Defizite aufweist.

  • Globale Variablen
    Im WordPress-Kosmos wird seht stark auf globale Variablen gesetzt. Im Jahr 2000 war das sicher was tolles. Man kann immer und überall auf die notwendigen Objekte zugreifen. Eine Datenbank mit global $wp_db in die Klasse zu holen war ein leichtes. 14 Jahre später hat man aber gemerkt, dass das eigentlich mehr Nachteile mit sich bringt. Testen ist leider so gut wie unmöglich mit diesem Konzept. Dependency Injection wäre hier die Lösung, die man heute präferieren würde.
  • The Loop
    Der Zugriff auf alle Postingdaten geschieht über the_loop. Legendär. Wieder ein schreckliches Beispiel für globale Variablen. Oder besser gesagt globale Funktionen. Auch wenn es diesen Ausdruck nicht wirklich gibt. In WordPress hat man immer Methoden, die einem die Eigenschaften des aktuellen Posts wiedergeben. the_content() wäre so eine. the_post() lädt die Funktionen mit dem nächsten Post. Eigentlich hätte ich aber gerne eine Variable, in der alles wichtige drinnen steht.
  • echo
    Was mir bei WordPress besonders auf den Sack geht ist dieses ständige echo. Funktionen geben keine Werte zurück, sondern printen sie gleich raus. Wenn man also etwas anpassen will oder den Wert irgendwie anders verarbeiten will, dann muss ein ob_start drumrum. Natürlich kann man auch die gleichen Ausdrücke verwenden, wie die Funktion die man nutzt und dann „einfach“ das echo weglassen. Dann ist man aber bei jeder Änderung an WordPress in der Situation, in der man schauen muss, ob sich die eigene Methode immer noch gleich verhält, wie die ursprüngliche.
  • Prozeduraler Code
    Auch in WordPress kann man sauber programmieren. Die Schnittstellen sind so konzipiert, dass man seinen Code recht sauber halten kann. Macht aber irgendwie niemand. Ich gehe davon aus, dass man sich so sehr von WordPress beeinflussen lässt und den Stil, den man dort findet einfach adaptiert. Das Resultat ist dann leider, dass auch die Plugins im ähnlichen Stil geschrieben werden.

Ich gehe davon aus, dass einige von euch noch andere Punkte finden. Dafür sind die Kommentare gut. Ich würde diese Liste anschließend dann auch erweitern.

Ach übrigens. Ich mag WordPress und ich werde bald noch einen Artikel verfassen, warum WordPress toll ist.

Über den Autor

Nils Langner

Nils Langner ist der Gründer von "the web hates me" und auch der Hauptautor. Im wahren Leben leitet er das Qualitätsmanagementteam im Gruner+Jahr-Digitalbereich und ist somit für Seiten wie stern.de, eltern.de und gala.de aus Qualitätssicht verantwortlich. Nils schreibt seit den Anfängen von phphatesme, welches er ebenfalls gegründet hat, nicht nur für diverse Blogs, sondern auch für Fachmagazine, wie das PHP Magazin, die t3n, die c't oder die iX. Nebenbei ist er noch ein gern gesehener Sprecher auf Konferenzen. Herr Langner schreibt die Texte über sich gerne in der dritten Form.
Kommentare

17 Comments

  1. Lieber Nils,

    vielen Dank für deinen Srtikel und deine offene Kritik. Es gibt sicherlich einige Punkte welche bei WP nicht optimal gelöst wurden – insbesondere nach heutigem Kenntnisstand und aktuellen Standards. Nicht desto trotz möchte ich zu zwei deiner Punkte noch einmal nachhaken:

    Punkt „The Loop“
    Du schreibst, du hättest gerne EINE Variable in welcher alles relevante enthalten ist. Für Artikel / Seiten … gibt es jedoch die globale $post?! Damit hast du ein Objekt mit allen zugehörigen Informationen. Dazugehörige Attachments sind zwar nicht enthalten, aber auch diese lassen sich doch schnell mit einer Funktion auslesen.

    Punkt „echo“
    Du schreibst, dass „echo“ von Funktionen wie the_content() dir „auf den Sack geht“, da man den Wert dann nicht mehr anpassen kann, ohne eine Buffer zu nutzen.
    Viele Post-basierende Funktionen haben aber doch ein mit „get_“ vorangestelltes Äquivalent?! So gibt dir get_the_content() den Content zurück anstatt ihn direkt auszugeben.
    Des Weiteren hat man an vielen Stellen durch Filter – z.B. add_filter(„the_content“, …); – die Möglichkeit Werte zu ändern.

    Daher meine Frage: Meinst du bei diesen Punkten etwas anderes?

    Gruß,
    Daniel

    Reply
    • Naja Leute, ich machs mal kurz für Menschen die ständig in Berührung mit WP sind ist das bestimmt die geilste Erfindung seit dem Menschen selbst, für normale User ist es eher Dreck, viel zu kompliziert viel zu viele Updates, Neuerungen und Spielerein in einer Pseudosprache, die Menschen dient sich zu profilieren wie viel Sie wissen, angeblich. Denn das ist das richtige Problem von WP es gibt zu wenig echte Wissende, die einem Rat geben können bzw könnten.

      Reply
  2. Ich geb dir recht … und ich widerspreche dir 😀

    Ich schreibe meine WP Plugins alle OOP und es gibt sehr viele, sehr gute und sauber gecodete Plugins für WP. Tom McFarlins Boilerplate ( https://github.com/tommcfarlin/WordPress-Plugin-Boilerplate ) ist für jeden Neueinsteiger ein guter Tip.

    Aber das der WP Core immer noch auf Globale Variablen und Funktionen und prozeduralen Stil setzt grenzt an Schwachsinn. Ich hätte mal versucht, selbst einigen Code bei zu tragen. Der wurde jedoch abgelehnt weil er nicht dem WP Coding Standard entspricht. Aber die Community ist groß und gut und ich setze meine Hoffnungen auf das nächste Major Release.

    Reply
    • Erst mal die Frage als Laie, was ist OOP ?

      Hoffnung bezüglich des nächsten „Major Relase“ von WordPress habe ich nicht, denn ich erwarte absolut nichts von WordPress, ergo kann dann auch keine Enttäuschung aufkommen.

      Eher hoffe ich inständig das eine aufkommenden Alternative wie ghost.org auch langfristig sich etabliert und nicht nach dem ganzen Hype schlicht untergeht, wie manch andere „tolle Idee“ dazu damals.

      WordPress ist im Kern eh als CMS zu sehen, die Frage dabei ist nur noch in welchem Größenformat… 😉

      Reply
  3. Moin Markus und Daniel,
    das wollte ich alles in meinem „WordPress ist super“-Artikel schreiben. Bin ja eigentlich ein großer Fan und mein Code ist meistens auch sauber.
    Gruß,
    Nils

    Reply
  4. Ein paar durchaus interessante Beispiele beschreibst du da, bezüglich der „schlechten Eigenschaften“ von WordPress. Ich als Laie, also „Trial&Error“-Anwender von WordPress, verstehe das zwar nur Teilweise komplett aber die Kernaussage des Artikel unterschreibe ich direkt so.

    ABER:
    Selbst wenn du wechseln wollen würdest, was du ja offensichtlich nicht willst, hättest du es schwer brauchbare Alternative zu finden. Eine die in etwa den Umfang wie WordPress bietet, aber zugleich auch noch gut von einer großen Community unterstützt wird aber am wichtigsten sich mindestens genau so schlicht/einfach für den 08/15-Nutzer bedienen lässt.

    GHOST.org kann nicht mal im Ansatz empfehlen, obgleich bekanntermassen das „zurückerobern des Bloggen“ nach eigener Aussage von GHOST deren Ziel ist. JA, sieht schick aus und funktioniert, nach einer umständlicheren Installation als WordPress in deren v1.0, auch sehr gut wie flexibel. Aber eine brauchbare Alternative zu WordPress, NEIN DANKE!

    Alleine schon der Punkt, das bei all der „Schlichtheit mit MarkDown“ bei GHOST solch eine nützliche Funktion wie das „Auto-Save alle X-Minuten“ fehlt, macht mir die Software ziemlich unsympathisch, leider.

    Reply
    • Ich liebe WordPress und finde, sie machen das meiste richtig. Deswegen will ich nicht wechseln. Ich glaube man müsste ein WordPress ein zweites strikteres Interface verpassen, dann wäre die Welt irgendwann wieder gut.

      Reply
  5. Meiner Meinung nach das Schlimmste ist der Updatewahn, alle 2 Wochen sollen alle Seiten aktualisiert werden, ohne Garantie, daß die Plugins mitziehen und ob das aktuelle Update eine Sicherheitslücke stopft, weiß man auch nicht.

    Meine Meinung: WordPress ist geeignet für Leute, die viel mit WordPress arbeiten. Nebenbei etwas aufzusetzen und einzupflegen geht zwar schnell, aber der Aufwand für die Pflege ( Vor allen Dingen mit eigenen Plugins und Themes) wird ganz schnell zu groß.

    Eine gute Alternative, gerade von der Übersichtlichkeit, ist Processwire !

    Reply
    • Sehe ich genauso! Ich hab WordPress bei Corporate-Kunden laufen und jedes Mal Horror davor daß jemand „aus Versehen“ auf den Update-Button drückt und das ganze WordPress crasht – denn das passiert tatsächlich, selbst bei etablierten Plugins. Da muss eine saubere Plugin-API her!

      Reply
  6. Interessanter side-fact: Einem der WordPress-Entwickler (der übrigens auch für die UI verantwortlich war) ging genau das auch auf die Eier, deswegen hat er WordPress von Grund auf neu gebaut. Das Projekt heisst GHOST, basiert auf node.js (man hat nach reichlicher Überlegung PHP verworfen) und ist quasi ein absichtlich entschlacktes WordPress. Es ist mir sowieso ein Rätsel wie sich die meistinstallierte PHP-Software der Welt so lange auf so einem grottigen Code-Niveau halten konnte. An der Stelle sollte man auch mal OpenSource-Community-gesteuertes Coding dezent in Frage stellen.

    Reply
    • Ich kann Nils‘ Einwände auf jeden Fall nachvollziehen. Der prozedurale Code von WordPress kann manchmal zu einem riesengroßen Krampf werden. Gerade wenn man als Entwickler normalerweise in objektorientierten Projekte involviert ist und dann plötzlich vor WordPress steht.

      Ein weiterer ganz großer Schwachpunkt ist das Templating in WordPress. Die WordPress Rohversion ohne Plugins kommt weitestgehend ohne Logik in den Templates aus. Bei den vielen Plugins sieht es schon ganz anders aus. Leider …

      Ich vermisse hier einfach eine striktere Qualitätskontrolle von Erweiterungen für Plugins. Wenn man schon mit prozeduralem Stil in der Basis daherkommt, sollte man es mit den vielen Erweiterungen nicht noch schlimmer machen.

      Ein Pluspunkt ist aber auch, dass man den OOP Gedanken für Erweiterungen nicht komplett über Board schmeißen muss. Es geht. Und das sogar sehr gut.

      Eine WordPress Hass-Liebe.

      Reply
  7. Ich frage mich schon lange warum so viele Leute auf WP setzen, obwohl doch ein modulares CMS für den ein oder anderen viel besser geeignet ist.
    Ich bekomme oft Anfragen von (bald-)Kunden, die irgendwann von einer Agentur mal auf WP gebracht wurden und dann in einer Sackgasse stecken oder am System so viel geändert wurde das man nicht mehr Updaten kann und das System an sich mehr Sicherheitslöcher hat wie Windows 95.
    Klar ist WP oft gut, aber man sollte auch mal nach Alternativen schauen, gerade wenn es darum geht das man erst mal startet und das System dann nach und nach erweitert werden soll. Da kommt dann oft am Ende ein mehr als zweifelhaftes Ergebniss raus…

    Reply
  8. Für Blogs denke ich ist WP auch ganz gut. Viele Kunden von uns Kennen WP und kommen eben sofort damit klar ohne das man viel erklären müsste. Selbst neuen ist die Bedienung sehr schnell klar.
    Aber komplette Webseiten damit zu bauen erschien mir immer etwas unsinnig und ich bezweifle auch ein wenig das dies überhaupt die intension von WP damals war.

    Selbst setze ich sehr viel auf MODx http://www.modx.com ein Open Source CMS welches als PHP Programmierer sehr GUT gefällt. Es schreibt einem praktisch nicht vor wie es zu bedienen ist und kommt auch sehr schlank daher ohne hunderten von fest installierten Modulen. Wenn jemand alternativen für ein CMS, ist das sicher einen blick wert.

    Reply
    • ModX und seine zentralen Module würde ich von der Code-Qualität noch unter WordPress einstufen – Aus PHP-Entwickler-Sicht.
      Unsere Frontender fanden es auch toll, bis sie mal was „richtiges“ umsetzen mussten 😀

      Reply
  9. Weitere Argumente warum WordPress Müll ist:
    1.) Medienverwaltung
    anlegen von Unterordnern mit selbsgewähltem Namen nicht möglich.
    Dateien die nur per FTP hochgeladen wurden scheinen in der Medienverwaltung nicht auf.
    2.) absolute Pfade in der Datenbank:
    Das macht eine Domainübersiedlung zum Spießrutenlauf
    Auch mit dem pugin Akeeba Backup sind danach alle Pfade zu Bildern zu korrigieren
    3.) SEO ?
    ohne Zusatzplugins kann ich keine meta-description für die jeweiligen Seiten einfügen

    Ich verstehe nicht warum so viel Werbung für WordPress gemacht wird
    All die oben genanannten Problem habe ich mit einer Basis-Installation von Joomla nicht
    Aber es gibt sicher noch andere CMS-Systeme die besser sind als WP !

    Reply
  10. Ich habe noch nie in meinem Leben mit so viel komplizierter Unprofessionalität gearbeitet. Selbst windows scheint ein Geschenk zu sein! Nach Updates von Plugins muss man hoffen, die Seite muss nicht halb neu gemacht werden. unendlich viele Umleitungsprobleme, sind ja auch vorsintflutlich und arbeiten ohne css. JEDEM, der es nicht MEGA simple halten will, rate ich dringlichst davon ab! in der Zeit die ich Fehler gesucht habe, hätte ich schon einen Supercomputer programmieren können! Plugins blockieren sich (jaja, sind ja alle gpl lizensiert. habe selten für freie Software so viel ausgegeben! reinster quatsch! Man glaube die Seite ist mal fertig, schon kommt der nächste Fehler um die Ecke und keiner weiß, woher. weil dann irgendwelche templates (was auch immer das bei wp ist) nicht mehr funktionieren (obwohl man ja so klug war alle plugins und themes upzudaten, was ja wieder zum Fehler davor führt) ich wünschte ich hätte mein geld für einen Rückenkratzer ausgegeben, hätte mir am ende mehr gebracht. und woozone, das wohl tollste ecommerce plugin fordert mehr Arbeit als alles andere! ich weiß nicht welch geistig gesunder mensch lust hat damit sein leben zu verbringen. Lernt programmieren! html, php, javascript. Für Tipps bin ich dankbar. und für eine bezaubernde Jeanne oder anderen Zauberer, der die Seite vielleicht mal fertig LÄSST! xD naja, jetzt hab ich mich abreagiert. hoffe ist alles jugendfrei. lebet lange und in frieden (ohne wp sicherlich ein paar qualitative Jahre mehr!)

    Reply

Leave a Comment.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen