Seitenspezifisches WordPress-Plugin (Alternative zur functions.php)
Ein seitenspezifisches WordPress-Plugin kapselt ausgewählte Theme-Funktionen der Website in einem Plugin. Das macht Sinn, wenn es sich um Features handelt, die bestehen bleiben sollen, wenn sich das Layout durch ein Redesign oder einen Theme-Wechsel ändert.

Im Laufe der Zeit sammelt sich in der functions.php
eines WordPress-Themes einiges an Code an. Neben WordPress-Standards wie Custom Post Types und Sidebars finden sich dort auch diverse Snippets die man hier und da auf irgendeinem Blog gefunden hat. Paginations, individuelle Dashboard-Widgets, Breadcrumb-Navigationen … Doch einige dieser Features sind in der functions.php
nicht gut aufgehoben und sollten besser in ein Plugin ausgelagert werden.
Vorteile von seitenspezifischen Plugins
Ein seitenspezifisches Plugin bietet sich für viele Code-Snippets an, die sonst in der functions.php
landen würden. Die Funktionen, die durch diese Snippets bereitgestellt werden, lassen sich in zwei Kategorien einteilen.
Theme-unabhängige Funktionen
Zunächst wären da Funktionen, die auch dann erhalten bleiben sollen wenn das Theme gewechselt wird. Z. B. die notwendigen Zeilen PHP für die Aktivierung von Custom Post Types, Beitagsbildern oder Shortcodes.
Solche Funktionen möchtet ihr sicher nicht verlieren, wenn das Theme gewechselt wird. Das wäre jedoch der Fall wenn ihr beispielsweise die Custom Post Types in der functions.php
unterbringt, da diese Datei Bestandteil des Theme ist. Ein Plugin arbeitet hingegen unabhängig vom Theme.
Theme-spezifische Lösungen
Als zweites wären da noch die Funktionen die direkt mit dem Theme in Zusammenhang stehen. Viele dieser Lösungen kommen nach und nach hinzu. Sobald man eine spannende neue Funktion auf einem der diversen Blogs (z. B. hier) gefunden hat, wandert das Snippet in die functions.php
. Durch das Auslagern dieser Snippets in ein seitenspezifisches Plugin schafft ihr Ordnung in der functions.php
und verringert das Risiko Fehler zu machen. Darüber hinaus erkennt WordPress wenn ein Plugin Ärger macht – auch das ist in der functions.php
meines Wissens nach nicht der Fall.
Es ist euch überlassen, ob ihr für die verschiedenen Einsatzmöglichkeiten der Code-Snippets ein Plugin oder mehrere Plugins verwendet. Ich arbeite meist mit mehreren Plugins. Um Missverständnissen vorzubeugen sei noch erwähnt, dass die functions.php
durch die hier beschriebene Lösung nicht überflüssig wird. Ihr solltet nur bei jeder Funktion überlegen, wo das dafür notwendige Snippet am besten aufgehoben ist.
Plugin erstellen
Glücklicherweise ist es kinderleicht ein seitenspezifisches Plugin zu erstellen. Erstellt eine neue PHP-Datei mit beliebigem Dateinamen und fügt nachfolgenden Code ein. Das ist der minimale Code eines WordPress-Plugins. Eine vollständige Auflistung aller verfügbaren Angaben findet ihr im Codex.
<?php
/*
Plugin Name: Seitenspezifisches Plugin für kulturbanause.de
Description: Plugin mit Theme-unabhängigen Funktionen und/oder Code-Snippets
*/
// Hier später den Code einfügen
?>
Anschließend ladet ihr die Datei ins Plugin-Verzeichnis (../wp-content/plugins/
) und aktiviert das Plugin über den WordPress Administrationsbereich.
Das ist ja super toll! :) Wie könnte man das denn als professioneles Plugin erweitern?
Also die Angaben der Versionsnummer, Entwickler Name, und „Details ansehen“ hinzufügen.
[…] wird nur der Rumpf eines regulären Plugins benötigt. Beschrieben hat das unter anderem der Kulturbanause (der sein Log mal überdenken sollte, bevor ihn DEVONtechnologies […]
[…] Mit folgenden Code-Snippet entfernt ihr die Post Thumbnails für statische Seiten. Fügt das Snippet in die function.php eures Themes ein, oder verwendet noch besser ein seitenspezifisches Plugin. […]
Toller Artikel! Ich möchte das seitenspezifische Plugin gerne für ein Projekt einsetzen. Das Plugin funktioniert auch, allerdings kann ich das Plugin nur für eine Seite (Seiten-Template) anwenden.
So schaut das Plugin aus:
Wenn ich ein weiteres Plugin verwenden möchte zum Beispiel für die Seite „Referenzen“ oder „Über uns“ erhalte ich immer diese Fehlermeldung:
Cannot redeclare hide_editor() (previously declared in /homepages/26/d538042396/htdocs/wp-content/plugins/Seitenspezifisches_PlugIn.php:13) in /homepages/26/d538042396/htdocs/wp-content/plugins/Seitenspezifisches_PlugIn.php on line 29
Ich möchte mit mehreren Plugins arbeiten. Was mache ich hier falsch?
Das Toolbox-Plugin von Sergej Müller ist auch nicht von schlechten Eltern. Man packt die Snippets in Module und kann diese fürs Backend/Frontend aktivieren oder deaktivieren.
https://wordpress.org/plugins/toolbox/
Danke für den Artikel. Eine spannende Sache und mal schauen, ob es sich im nächsten Projekt bewährt ;)
[…] Code überlagerte Datei kann mit Hilfe eines seitenspezifischen Plugins erheblich entlastet werden. Hier erfahrt ihr, wie es […]
Das ist in dem Plugin http://wordpress.org/plugins/code-snippets/ gut gelöst: seitenspezifische Code-Snippets lassen sich einzeln aktivieren oder deaktivieren, auch multisite übergreifend – feine Sache.
Genau das Plug-in Code Snippets kann ich auch explizit empfehlen. Die Snippets sind leicht zu warten und können kurz und übersichtlich kommentiert werden. Da man die functions.php nicht anrührt, nimmt die Gefahr eines, mitunter schwer zu behebenden Seitencrashes spürbar ab.
Hallo Jonas, weißt Du ob das auch dazu genutzt werden kann Beispielsweise JS-scripts nur auf spezifischen Seiten anzuzeigen um so die Ladezeiten zu optimieren? Man braucht ja zum Beispiel für ein schickes Portfolio hier und da ein paar Gimmicks die man z.B. im Kontaktform nicht braucht und umgekehrt.
Das wäre auch möglich. Aber das was du suchst klingt für mich eher nach normalen Conditional Tags.
Oder halt nen Child-Theme.