Plugin oder functions.php, wann nutze ich was?

WordPress kann auf zwei Arten angepasst und erweitert werden: Themes und Plugins.

Wann nutze ich welchen Weg? Welchen Vorteil bieten Anpassungen über ein Theme, welchen Vorteil Anpassungen über ein Plugin?

In ein Plugin gehören alle grundsätzlichen Anpassungen und Funktionalitäten, die nichts mit dem Design der Seite zu tun haben. Beispielsweise Konfigurationsänderungen, das Registrieren von Custom Post Types oder auch Shortcodes (in den meisten Fällen zumindest).

In ein Theme gehören alle Anpassungen, die direkt mit dem Theme zu tun haben. Man muss immer im Hinterkopf behalten, dass gleichzeitig immer nur ein Theme aktiv sein kann (evtl. noch mit einem Parent Theme), aber nahezu beliebig viele Plugins aktiv sein können. Ziel einer sauber programmierten Website sollte außerdem immer sein, dass das Theme jederzeit gewechselt werden können muss, ohne funktionale Probleme zu bekommen.

Registriere ich beispielsweise einen Custom Post Type in einem Theme und wechsle das Theme, dann verschwindet der Custom Post Type aus WordPress. Die Daten bleiben zwar in der Datenbank erhalten, jedoch habe ich keine Möglichkeit mehr, diese zu verändern oder darzustellen.

Ähnlich verhält es sich mit Shortcodes. Shortcodes sind kurze Codes, die an beliebiger Stelle im Seiten- oder Beitragsinhalt eingefügt werden können. WordPress ersetzt diesen Shortcode dann durch das gewünschte Resultat. So kann man beispielsweise einen Shortcode für das letzte Änderungsdatum einfügen, ein Menü oder ein Suchfeld einblenden. Wenn der Shortcode jedoch über das Theme definiert wird und das Theme wird ausgetauscht, kann WordPress die gewünschte Ersetzung nicht mehr vornehmen.

Viele Premium Themes für WordPress möchten mit möglichst tollen Features glänzen und begehen dabei einen gravierenden Fehler: Sie packen all diese Features direkt in das Theme. Dadurch gehe ich eine ungewünschte Bindung mit dem Theme ein. Möchte ich das Design irgendwann wechseln, funktioniert die Hälfte der Website nicht mehr – oder ich übernehme den relevanten Code in mein neues Theme. Auch das ist keine wirklich schöne Lösung, viel mehr sollte man sich merken:

Alle Anpassungen und Funktionalitäten, die einen Theme-Wechsel überstehen sollen, gehören in ein Plugin!

Schreibe einen Kommentar