WordPress: So nutzt du ein eigenes Plugin statt der functions.php

Jeder, der längere Zeit eine WordPress-Website betreibt, kennt das Problem. Für alle möglichen Funktionen braucht man kleine Code-Schnipsel, die man in die functions.php des aktivierten Themes einfügt. Wenn die Website nur einige wenige dieser Code-Snippets benötigt, ist das grundsätzlich kein Problem. Doch eine Website, die bereits seit Jahren online ist, hat eventuell schon sehr viele Code-Schnipsel angesammelt. So verliert man erstens schnell den Überblick und zweitens sind die Änderungen bei einem Theme-Wechsel oder einem Update des Themes verschwunden. Ich zeige dir heute einen besseren Weg.

WordPress: So nutzt du ein eigenes Plugin statt der functions.php

Nachteile von Code-Schnipseln in der functions.php

Nach und nach sammeln sich viele Code-Snippets in der functions.php-Datei eines WordPress-Themes an. Die Übersicht leidet schon extrem, auch weil zumeist nicht nur Schnipsel ihre Heimat in der Datei finden, sondern auch noch Theme-Funktionen darin untergebracht sein können, wie es bei den Standard-Themes von WordPress und einigen anderen Themes der Fall ist. Bei einem Theme-Update sind zudem noch alle Code-Schnipsel wieder verschwunden und man muss sein hoffentlich getätigtes Backup der Datei wieder einspielen. Nachteile über Nachteile.

Der Mensch ist ein Herdentier und hinterfragt viele Dinge nicht – auch nicht die Dinge, die bisher nicht wirklich gut funktionierten. Alle Verwender einer WordPress-Website handhaben es so, daher wird es ebenso gehandhabt. Auch mir ist das jahrelang so gegangen. Ich kenne alle Nachteile zur Genüge und habe trotzdem nicht nach einer Lösung gesucht, obwohl diese so nah ist.

Ein seitenspezifisches Plugin anlegen, statt die functions.php zu nutzen

Die Idee ist naheliegend und wesentlich funktioneller, als die unsägliche functions.php zu nutzen. Wir erstellen einfach ein eigenes Plugin für die Website. Alle Code-Schnipsel kommen nur noch in dieses Plugin hinein, alte Schnipsel ziehen einfach um. Das hat zudem den großen Vorteil, dass nach einem Theme-Update oder einem Theme-Wechsel alle Code-Fragmente noch vorhanden sind. Die Lösung ist also zukunftssicher und einfach zu handhaben.

Doch bevor wir an die Arbeit gehen, fertigen Sie bitte ein Backup ihrer functions.php Datei an.

So erstellst du ein eigenes Plugin für deine Website

Vielleicht denkst du jetzt, dass es echt kompliziert ist, ein eigenes Plugin zu erstellen. Doch das ist es nicht. Im Gegenteil, es ist sogar richtig einfach. Erstelle zuerst einen neuen Ordner auf deinem Desktop und nenne ihn websitename-plugin. Beispiel: drweb-plugin. In diesen Ordner fügst du eine leere Datei ein, die du mit Notepad (Windows) oder TextEdit (Mac) erstellen kannst. Nenne die Datei websitename-plugin.php.

Öffne die Datei nun mit einem Texteditor oder einer Entwicklungsumgebung wie zum Beispiel Atom, Brackets oder ähnlichen. Kopiere folgendes hinein:

Ein Klick öffnet das Gist bei GitHub
Das eigene Plugin erstellen statt functions.php zu nutzen

Nun kannst du in diese Datei deine Code-Schnipsel aus der functions.php-Datei einfügen. Nachdem das geschehen ist, lädst du den Ordner mit deinem Plugin in das Plugin-Verzeichnis von WordPress per (S)FTP hoch. Der korrekte Pfad lautet: wp-content/plugins/.

Im Anschluss musst du dich in dein WordPress einloggen und das Plugin noch aktivieren.

Das Seitenspezifische Plugin

Fazit

Mit nur wenig Aufwand haben wir eine bessere und vor allem zumeist übersichtlichere Lösung für das Problem mit den Code-Schnipseln gefunden. Endlich sind unsere Sonderfunktionen bei Theme-Wechseln und Updates sicher. Das ist ziemlich smart. Wenn du Schnipsel zum Auslagern suchst, schau mal in diesen Beitrag. Da haben wir ein paar nützliche Code-Snippets gesammelt.

(dpe)

ist freier Journalist, Spezialist für WordPress und WordPress Sicherheit und schreibt seit 2012 für Dr. Web. Nebenbei ist er Autor mehrerer E-Books zu den Themen Lebenshilfe, Marketing und WordPress. Auf seinem Blog TechBrain.de schreibt er über das Schreiben und Bloggen und veröffentlicht nützliche WordPress-Snippets.

Sortiert nach:   neueste | älteste | beste Bewertung
Franz Meyer
Gast
Franz Meyer
7 Monate 22 Tage her

Ein toller Tipp! Vielen Dank dafür

Anna Blume
Gast
Anna Blume
7 Monate 22 Tage her

Eine sehr gute Anregung, vielen Dank.
Vielleicht habe ich nicht genug Ahnung, aber bei mir funktioniert es nicht.
Was mir fehlt ist die Angabe, was in der funktions.php erhalten bleiben muss und ein Beispiel für eine „websitename-plugin.php“.

Markus
Gast
7 Monate 21 Tage her

Hab dies vor Jahren auch so gemacht und alles mögliche in Plugins gepackt. Bin inzwischen aber wieder abgekommen davon. Den ich finde es besser lediglich die functions.php einzubinden, nach der ja sowieso gesucht wird, wie lauter einzelne Plugins einzubinden, wo bei jedem einzelnen wiederum geschaut wird ob dies aktiv ist oder nicht etc. Das sind in manchen Fällen einige zusätzliche DB Aufrufe die man sich sparen kann. Eine gut dokumentierte functions.php tut es da auch. Ich lass mich aber gern auch eines besseren belehren :-)

Maike
Gast
Maike
7 Monate 20 Tage her

Sehr sinnvoll. Eine tolle Anleitung! Vielen Dank dafür. Würde das Plugin so auch in einer WordPress Multisite Installation funktionieren?

Sven Lennartz
Dr. Web Crew
7 Monate 20 Tage her

Ahoi,

interessant, aber ist es nicht heute üblich child-themes zu benutzen? da kann oder wird auch die functions.php dazugehören. dann überschreibt man nix mehr bei einem theme-update.

trackback

[…] kam mir ein Dr.-Web-Tipp gerade recht. Andreas Hecht beschreibt, wie man Code-Schnipsel statt in die functions.php in ein […]

Michael Wendt
Gast
7 Monate 10 Tage her

Hallo Andreas,
danke für den Artikel! Bei mir ging nach Aktivierung des noch leeren Plugins vieles nicht mehr: Beim Aktualisieren von Beiträgen kam ein weißer Bildschirm, die Medienübersicht zeigte nichts mehr an, das Login ging nicht mehr.
Ich habe eine Multisite-Installation und WordPress 4.4.2.
Abhilfe schaffte die zusätzliche Angabe von Version, Author URI und Licence im Kopf des Plugins.

trackback

[…] folgende Code-Snippet sollte entweder in die functions.php des aktiven WordPress-Themes oder in das seitenspezifische Plugin der Website kopiert […]

trackback

[…] functions.php des Themes gehören verwalten konnte. Das Plugin ist Geschichte. Ich habe heute bei Dr.Web einen guten Ersatz für diese Toolbox gefunden. Nicht ganz so komfortabel, aber auch nicht […]

wpDiscuz