WordPress ohne Plugin erweitern

The times they are a-changin’.

This post seems to be older than 3 years—a long time on the internet. It might be outdated.

WordPress um Funktionalitäten zu erweitern, ohne dafür ein Plugin zu installieren – das Thema ist ein Dauerbrenner in Blogs, Foren und Online-Communities. Einen eleganteren, sichereren und komfortableren Ansatz, als mal eben die functions.php deines Theme zu hacken, bietet die Toolbox, in der du eigene Funktionen als Module anlegen kannst.

Eigene Funktionen im Theme laden

Viele WordPress-Nutzer/innen kommen mit ihrem Blog oder ihrer Website über Kurz oder Lang an den Punkt, dass sie eigene Funktionen ausführen möchten. WordPress bietet Schnittstellen – Hooks und Filter – für fast jede Funktionalität und macht es seinen Nutzern leicht, die Ausgabe einzelner Bereiche ihrer Site zu modifizieren.

Der PHP-Code für individuelle Anpassungen, wie z.B. das Einblenden oder Ausblenden bestimmter Kategorien, die Anzeige verwandter Beiträge (related posts) u.ä., ist nur eine Google-Recherche weit weg. (Ob Code-Copy-Paste eine sinnvolle Art und Weise der Anpassung darstellt, sei mal dahin gestellt.)

Google Suchergebnisse zu „wordpress without plugin“
Google Suchergebnisse zu „wordpress without plugin“

Meistens heisst es in den entsprechenden Tutorials: lege den Code einfach in deine functions.php und – voilá! Rein technisch ist dagegen in den wenigsten Fällen etwas zu sagen. Aber der feine Unterschied zwischen „passt scho’“ und einer nachhaltigen, überlegten Vorgehensweise zeigt sich spätestens, wenn ein neues Theme aktiviert wird. Dann heisst es nämlich Ärmel hochkrempeln und alles Änderungen der alten functions.php in die neue zu übertragen.

Und natürlich gibt es auch immer wieder die Pechvögel unter den WordPress-Nutzer/innen, die zu spät von so etwas wie Child Themes gehört haben und daher ihre Änderungen in der functions.php schon beim nächsten Update ihres Premium-Theme überschreiben. Autsch.

Die Behauptung, mehr aktive Plugins würden die Ladezeiten unter WordPress erhöhen, stimmt so übrigens nicht. Plugins können die Ladezeit allerdings dann negativ beeinflussen, wenn sie eigene Skripte oder Stylesheets laden und diese nicht sauber implementieren.

Toolbox: Meta-Plugin für Module

Toolbox ist ein Meta-Plugin. Es tut selbst nichts, sondern ermöglicht dir, das zu tun, was du willst, ohne dabei auf die Nase zu fallen.
Toolbox kreiert eine sichere Schnittstelle mit WordPress, an der sogenannte Module ausgeführt werden können – eben die eigenen Funktionen, mit denen man sonst die functions.php vollspammen würde.

Eigene Funktionen als Module anlegen

Der Workflow ist denkbar einfach:

  • neue PHP-Datei im Plugin-Ordner toolbox/modules/ anlegen
  • kurze Sicherheitsabfrage in die Modul-Datei kopieren
  • eigene Funktion hinzufügen (eindeutiges Präfix nicht vergessen!)
  • Datei speichern und Modul über die Plugin-Einstellungen im Backend aktivieren
Toolbox Plugin
Eigene Funktionen lassen sich als Module für das Toolbox Plugin leicht anlegen.

Einstellungen

Besonders praktisch an Toolbox: Einmal erstellte Module lassen sich in den Einstellungen separat für das Frontend und/oder das Backend aktivieren und deaktivieren, ohne das dafür wieder eine PHP-Datei geöffnet werden müsste.

Wer eine neue Site aufsetzt, kopiert einfach das Module-Verzeichnis hinüber und hat alle jemals erstellten eigenen Funktionen zur optionalen Verwendung parat.

Toolbox Plugin
Module für Toolbox lassen sich separat für Frontend und/oder Backend aktivieren.

Plugin-Autor

Geschrieben wurde Toolbox von Sergej Müller, dem unheimlich netten Wahnsinnigen, der hinter Blog-Rettern wie dem kostenlosen AntiSpam Bee und AntiVirus steckt, eine seriöse Alternative zu werbefinanzierten SEO-Plugins geschaffen hat und seit einiger Zeit einen preisgünstigen Webservice für die verlustfreie On-the-fly-Optimierung von Bild-Uploads in WordPress anbietet.[1]

Toolbox ist Freie Software und kostenlos. Wenn du es nutzt und es dir die Arbeit erleichtert, spende bitte ein paar Euro als Anerkennung und Dankeschön an den Autor.

Fazit

Toolbox eignet sich besonders für Anwender/innen, die regelmäßig selbst Hand an den Code ihrer WordPress-Site legen, sich aber nicht zutrauen, ein eigenes kleines Funktionalitäten-Plugin zu schreiben, um eigene Anpassungen aus dem aktiven Theme auszulagern.

Anstatt bei der nächsten Funktionserweiterung deines eigenen Blogs wahllos Code in die functions.php zu schmettern, versuch’s doch einfach mal mit der modularen Methode der ausführlich dokumentierten Toolbox! So hältst du deine Anpassungen immer verfügbar und kannst sie mit minimalem Aufwand wieder verwenden.

Feedback?

Hast du Erfahrungen damit gemacht, WordPress ohne Plugin mit eigenen Funktionen anzupassen?
Hast du Toolbox schon einmal genutzt, oder ein eigenes Funktionalitäten-Plugin für deine Site geschrieben?
Welche der drei Methoden findest du für dich am sinnvollsten?

Update 14.05.2013: Frank Josef Kaiser hat einen lesenswerten Artikel zur functions.php veröffentlicht, in dem er sich der hartnäckigsten Mythen rund um die Alleskönnerin unter den Template-Dateien annimmt:
Without a plugin? The functions.php myth. A comprehensive user guide.
Der Beitrag enthält auch ein kurzes Tutorial, mit dem du innerhalb weniger Minuten aus den Snippets in der functions.php deines Theme ein eigenes, leicht zu pflegendes und schneller wiederverwendbares Plugin machst.

[1]Dieser Beitrag ist nicht gesponsert, Ehrenwort!

16 Antworten zu “WordPress ohne Plugin erweitern

    • Das Plugin kannte ich noch nicht, kann also nichts dazu sagen. Hast du es im Einsatz?

      BTW: Aus irgendeinem Grund muss ich in deinem Blog immer meine Daten neu eintragen. Hast Du eine Idee woran das liegen könnte?

      Vielleicht, weil ich nicht Jetpack benutze? 😉
      Oder funktioniert die Felderkennung im Browser auch nicht?

    • Ist im Prinzip das gleiche. Man kann den Code bequem über die GUI eintragen – wenn man’s mag. Code Snippets wurde auch nach Toolbox veröffentlicht, daher mussten Sie die Idee nicht „erfinden“, sondern nur erweitern. 😉

  1. Vorteil von „Code Snippets“: nativ Multisite-fähig, für Netzwerk-spezifische Schnipsel.
    Außerdem Import-/ Exportfunktion der Schnipsel, eine „Notfall-Konstante“ sowie Admin-Berechtigung im Falle von Multisite einstellbar.

    Bei Toolbox gefällt mir, dass es die Einstellmöglichkeiten Frontend/ Backend etc. gibt, da müßte man sich beim anderen halt selbst drum kümmern…

    • David, absolut richtig. Da bei Toolbox die Module nicht in der Datenbank liegen, brauchst du nur den modules Ordner mitnehmen. Schon hat man Export und Import zugleich 😉

      Ich persönlich empfinde es als störend, Code in der DB aufzubewahren. Für mich gehört der Quelltext in Dateien. Aber für Einsteiger ist es sicher einfacher, den Code via Eingabefeld zu tippen als Dateien per (S)FTP anzulegen.

  2. Ist bei mir nicht im Einsatz. Ich wollte beide mal testen und eines davon dann nutzen. Insofern vielen Dank an David und Sergej für die Hintergrundinfos!

    Mit Jetpack hat das Ganze nichts zu tun. Die Felder werden nicht automatisch erkannt / ausgefüllt …

  3. Habe eine Anfänger- bzw. Verständnisfrage: Was ist denn der Unterschied zwischen „Snippets“ und „Shortcodes“ bei der Anpassung ?

    • Hi Beate,
      gut, dass du fragst! Snippets und Shortcodes sind zwei völlig unterschiedliche Dinge.

      Snippets ist ein beliebiger Begriff, der übersetzt einfach „Schnipsel“ bedeutet. Er muss nichts mit WordPress zu tun haben.
      In unserem Zusammenhang sind natürlich sog. „Code-Schnipsel“ gemeint, also kleine Blöcke von ein paar Zeilen HTML-/PHP-Code, die in sich eine bestimmte Funktionalität liefern. Bekannt ist z.B das Snippet von Google Analytics, das du dir in den Quelltext deiner Site einfach hinein kopierst.
      Noch mal: Ein Snippet kann WordPress-Code, oder irgendwelchen anderen Code enthalten.

      Shortcodes hingegen sind WordPress-spezifisch! Ein Shortcode ist eine Art Platzhalter für eine PHP-Funktion. Im Gegensatz zu der PHP-Funktion selbst kannst du den Shortcode in deinen Editor einfügen (wo du Beiträge schreibst). Bei der Ausgabe des Inhalts im Browser wir der Shortcode dann von WordPress „geparst“, d.h. die eigentliche PHP-Funktion wird ausgeführt.
      Shortcodes schreiben sich immer in eckigen Klammern:
      [mein_shortcode]
      oder auch
      [mein_shortcode]Irgendwas dazwischen[/mein_shortcode]

      Um die Verwirrung komplett zu machen: Ein Snippet kann natürlich die Funktion für einen Shortcode enthalten. Und ein Shortcode kann dafür sorgen, dass im Browser ein bestimmtes Snippet ausgegeben wird. 😉

  4. Danke für die ausführliche Erklärung, soweit habe ich es kapiert:-)

    Snippets und Shortcodes werden über die functions.php eingepflegt, d. h. Shortcodes können also auch mit Code Snippets oder Toolbox verwaltet werden (bzw. man kann damit auf die Shortcode API zugreifen)?

  5. Hallo, ich habe mit Interesse den Artikel gelesen und werde das in Zukunft sicher ausprobieren. Vielen Dank für den Artikel.

    Ich habe es in Vergangenheit bereits einige Male so gemacht, dass ich einige Dinge nicht mehr in die functions.php sondern in Dateien, die in einem Unterordner untergebracht sind, geschrieben habe. Diese Dateien kann man problemlos einbinden und meine functions.php blieb schlank und übersichtlich. Besonders bei custom post types hat sich das bei mir bewährt. Das dürfte doch vom Prinzip her ein ähnlicher Ansatz sein oder?

    • Das ist eine Fangfrage, oder? 😉 Es gibt meines Wissens keinen echten Vorteil, zumindest nicht unter technischen Aspekten (vielleicht noch mal Sergej fragen). Das weisst du als Entwickler ja besser als ich. Die Gründe liegen wohl eher im schwer messbaren Bereich der Psychologie und Emotion.

      Anwender mit wenig oder null Ahnung von Code schrauben ja trotzdem gerne an ihrem Theme rum. Das ist visuell, wie ein Motorrad, da liegt alles offen, man traut sich da ran. Hobby-Motorrad-Schrauber würden selten mit der gleichen Selbstverständlichkeit ihr Auto auseinander nehmen, hat mir mal ein Profi-Motorrad-Schrauber erzählt. Beim Auto gibt es mehr Teile, sie liegen versteckter, man sieht nicht alles gleich usw.

      Ähnlich bei Plugins, man traut sich da als Anwender einfach nicht so leicht ran wie ans Theme und an die functions.php. Außerdem liest man ja auch überall: pack‘ das hier in die functions.php – dann muss das ja wohl in Ordnung sein, da Sachen rein zu packen.

      Als ein Hobby-WordPress-Schrauber kann man hier lernen (ich paraphrasiere mal einen fiktiven inneren Monolog): Aha, functions.php ist für viele Erweiterungen nicht optimal. Ein Plugin zu schreiben traue ich mich nicht, wer weiß, was das alles lahm legt, wenn ein Fehler drin ist. So eine Toolbox ist eher „meins“, ähnlich wie die functions.php, bloß sicherer. Außerdem kann ich die Sachen im Paket exportieren.

  6. Hallo, danke für den Beitrag. Habe die Toolbox installiert, ein Schnippsel hochgeladen und schon sind sämtliche java scripts aus dem Header in den Footer gewandert. Genial! Wenn per Zufall gerade jemand ein Schnippsel kennt welches dasselbe mit CSS Dateien macht dann her damit.

Schreibe einen Kommentar

Kommentieren ist ein Privileg, kein Recht. Sei anständig.

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