toscho.design

WordPress: Ein Plugin ist ein Plugin

Ich will die Frage nicht mehr lesen: Warum ist Germanix ein Plugin und keine de_DE.php wie bei Frank Bültge?

Die erste Antwort darauf sieht ganz pragmatisch aus: Ungeachtet des schlecht gewählten Namens eignet sich Germanix für viele Sprachen: Dänisch, Türkisch, Französisch oder Spanisch zum Beispiel.
Als de_DE.php wäre der Nutzen ohne Not reduziert, denn die benutzt WordPress ja nur, wenn in der wp-config.php eben diese Sprache angegeben wurde.

Die zweite – und mir wichtigere – Antwort fällt vielleicht eher unter Meinung, deshalb möchte ich vorausschicken, wie meine Sicht gefärbt ist: Ich schreibe pro Woche mindestens ein Plugin, oft zwei, manchmal drei. Pro Monat schreibe ich zwei bis drei Themes. Ich weiß also ein wenig, was wo am besten funktioniert. Oder ich bin eingefahren, wie immer man das sehen möchte.

Was ich nicht bin: perfekt. Ich mache Fehler, schreibe Bugs in meinen Code, die ich dann wieder repariere. Bei einem komplexen System, dessen Bestandteile (Core, Themes und Plugins) separat aktualisiert oder ersetzt werden, kann sich so ein Bug recht gut verstecken. Manchmal entsteht so ein Fehler auch durch fremden Code, der nicht sauber geschrieben wurde, oder durch das Aufeinandertreffen zweier an sich ganz harmloser Codes.

Beispiel: Ein Beitrag wird plötzlich ganz anders ausgegeben, als er geschrieben wurde. Oder der Permalink dafür leitet auf die Fehlerseite.
In solchen Fällen gehe ich wissenschaftlich vor: Ich ändere immer nur eine Variable, Schritt für Schritt, bis ich alle notwendigen Faktoren ermittelt habe. Dann weiß ich, wo ich suchen und flicken muß.

Programmieren ist zu 80% Debuggen, also muß das einfach sein.

Das heißt: Ich muß Code schnell und möglichst granular abschalten können. Als de_DE.php müßte ich zum Debuggen die Datei umbenennen, denn allein das Ändern der Sprache in der wp-config.php erfaßt zu viele weitere Faktoren. Das ist mir zu umständlich, obendrein vergesse ich es vielleicht.

Und für die Nutzer meines Plugins ist es noch umständlicher. Wer hat schon immer das FTP-Programm oder eine SSH-Shell geöffnet, wenn er an WordPress sitzt?

Als klassisches Plugin kann ich Germanix jederzeit einfach und isoliert abschalten.

Gleiches gilt auch für viele Hacks, die für die functions.php empfohlen werden. Wenn der eingebaute Code im Stylesheet oder in einer Template-Datei nicht berücksichtigt werden muß, dann gehört er in ein Plugin.
Dabei entsteht keine zusätzliche Last, nur die Liste der aktiven Plugins wird um einen Eintrag erweitert. Und wenn diese paar Zeichen dein System schon in Not bringen, dann ist das System kaputt.

Wenn dir jemand sagt, er habe Plugin-Funktionalität ohne ein Plugin, dann glaub es nicht. Nicht der Ort des Codes entscheidet darüber, ob er ein Plugin ist, sondern das, was er tut. Auch ich habe diesen Fehler schon begangen. Sorry.
Mein Dofollow-Code ist jetzt ein Plugin, der Code zur Kontrolle des Umbruchs im Titel auch.

Warum ist also Germanix ein Plugin? Weil es ein Plugin ist. Der Code benutzt die Plugin-API, er kann vom Theme komplett ignoriert werden, und er muß abschaltbar sein.

Weitere Lektüre

10 Kommentare

  1. Frank am 25.04.2011 · 19:29

    Wobei WP an diversen Stellen das Implementieren von Code erlaubt, nicht nur mit dem Sprache-Schlüssel wie im Fall de_DE.php, sondern auch beim Cache.
    Dennoch sollte jeder den Beitrag lesen, nachdenken und endlich dieses Denken in Zahlen aus dem Kopf verdrängen; die Liste der Plugins im Admin-Bereich ist keine Aussage über die Qualität.

    Unsere de_DE.php muss nicht im Admin abschaltbar sein, sie ist abhängig von dem Sprachschlüssel; aber auch da kann man versch. Ansichten haben und versch. Lösungen nutzen - was gut ist.

  2. Thomas Scholz am 26.04.2011 · 10:14

    @Frank: Ich finde beispielsweise die Funktion zum Umschalten der Rechtschreibprüfung in TinyMCE nicht nur sehr cool, sondern ich sehe in ihr auch reines Pluginmaterial. Die könnte man gut abstrakter schreiben, damit sie für alle Sprachen funktioniert. Und ob man etwas abschalten können muß, läßt sich aus der Sicht des Autors ja schlecht vorhersagen. Deshalb packe ich auch nur sehr selten Plugins in das Verzeichnis mu-plugins.

  3. Frank am 26.04.2011 · 10:51

    alle Funktionen sind halt rein aus dem Antrieb, pures Deutsch zu nutzen und zu schreiben. Wobei es nicht zu Ende gebracht ist, da ich Sonderzeichen wie Hochkommes im Content nicht ersetze; da DE eben aktuell auch AT und CH mit einkreist.

  4. rob am 28.04.2011 · 13:51

    Code Snippets sind eine gute Möglichkeiten um sich

    a) Viel Zeit zu sparen
    b) hoffentlich daraus zu lernen
    c) irgendwann selbst welche zu veröffentlichen

    Und wenn ganze Code Blöcke übernommen werden, so sollte zumindest der Original Author als Kommentarvermerk drin bleiben.

  5. Stefan am 30.04.2011 · 00:51

    Ja vorallem zeit spart man.
    was ich noch sagen wollte, top Bild =)

  6. Manuel Schäfer am 29.06.2011 · 16:20

    Das Bild passt ja toll zum Content. Ich debugge leider eher 90% vom programmieren insgesamt. Habe ich mir irgendwie so angewöhnt eher drauf loszupreschen wenn ich eine Webseite erstelle als richtig zu prüfen ob auch alles stimmt.

  7. Nomax am 04.07.2011 · 12:40

    @Daniel Keppler:

    lol wie geil das dachte ich mir eben auch ;-)

    hab echt ordentlichst schmunzeln müssen... hehe

    Grüße

  8. Hans am 04.07.2011 · 17:13

    Hast du irgendwelche Erfahrungen, was passiert wenn man eben keine Plugin sschreibt- sondern einfach Content / Elemente an WordPress vorbei in eine Website integriert? Wir haben da gerade Probleme - z.B. mit dem verlinkten Content, der inhaltlich prima ist - aber (da außerhalb von WordPress?) sträflich von Google ignoriert wird :-(

  9. Klabund am 07.07.2011 · 21:43

    Das Bild ist genial. Wenn ich meinen Traum vom Kinderzimmer-Hoster noch eines Tages erfülle, wirds bei mir ähnlich aussehen xD

  10. oMaximus am 04.11.2011 · 14:48

    Schöner Beitrag! Ich weiß nun nicht, wie umfangreich der Code des angesprochene Plugins Germanix ist, allerdings überwiegen bei WordPress tatsächlich in den meisten Fällen die Vorteile solche Tools als Plugin und nicht als einfachen Code Snippet (zum "Selberbasteln") zu veröffentlichen.

    Komfortabler ist es allemal, noch dazu schneller und einfacher im Umgang - man denke nur an Bugfixes (-> Sicherheitslücken, Kompatibiltät) oder das einfache (De-)Aktivieren.

    PS: Das Bild hat was ;)