Zur Suche springen Zur Navigation springen Zum Hauptinhalt springen Zum Footer springen

Seitenspezifisches WordPress-Plugin (Alternative zur functions.php)

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.

Geschrieben von Jonas

Benutzerbild

Jonas ist Gründer der Agentur kulturbanause und des kulturbanause Blogs. Er arbeitet an der Schnittstelle zwischen UX/UI Design, Frontend und Redaktion und hat zahlreiche Fachbücher und Video-Trainings veröffentlicht. Jonas Hellwig ist regelmäßig als Sprecher auf Fachveranstaltungen anzutreffen und unterstützt mit Seminaren und Workshops Agenturen und Unternehmen bei der Planung, der Gestaltung und der technischen Umsetzung von Web-Projekten.

Jonas Hellwig bei Xing

Feedback & Ergänzungen – 12 Kommentare

  1. Paulo
    schrieb am 13.11.2016 um 23:57 Uhr:

    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.

    Antworten
  2. Wandern als Plugin | Jenseits des täglichen Wahnsinns
    schrieb am 28.08.2015 um 09:28 Uhr:

    […] 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 […]

    Antworten
  3. Beitragsbild (Post Thumbnail) für einzelne Post-Types entfernen | kulturbanause® blog
    schrieb am 18.11.2014 um 23:32 Uhr:

    […] 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. […]

    Antworten
  4. Philipp
    schrieb am 14.11.2014 um 09:07 Uhr:

    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?

    Antworten
  5. Olafson
    schrieb am 19.07.2014 um 18:25 Uhr:

    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/

    Antworten
  6. Martin
    schrieb am 23.02.2014 um 13:07 Uhr:

    Danke für den Artikel. Eine spannende Sache und mal schauen, ob es sich im nächsten Projekt bewährt ;)

    Antworten
  7. WordPress Blogschau Januar - Was gibt es neues?
    schrieb am 04.02.2014 um 10:06 Uhr:

    […] Code überlagerte Datei kann mit Hilfe eines seitenspezifischen Plugins erheblich entlastet werden. Hier erfahrt ihr, wie es […]

    Antworten
  8. Birgit
    schrieb am 16.01.2014 um 16:33 Uhr:

    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.

    Antworten
    • Thomas
      schrieb am 22.05.2018 um 17:04 Uhr:

      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.

      Antworten
  9. Jens Bayer
    schrieb am 16.01.2014 um 15:06 Uhr:

    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.

    Antworten
    • Jonas Hellwig
      schrieb am 16.01.2014 um 17:43 Uhr:

      Das wäre auch möglich. Aber das was du suchst klingt für mich eher nach normalen Conditional Tags.

      Antworten
  10. Phillip
    schrieb am 16.01.2014 um 14:55 Uhr:

    Oder halt nen Child-Theme.

    Antworten

Kommentar zu dieser Seite

Wir freuen uns über Anregungen, Ergänzungen oder Hinweise zu Fehlern. Wir lesen jeden Eintrag, veröffentlichen aber nur, was den Inhalt sinnvoll ergänzt.

WordPress-Projekte mit kulturbanause

Wir wissen wovon wir reden. Wir setzen WordPress seit über 10 Jahren erfolgreich ein und realisieren maßgeschneiderte Websites auf Basis dieses großartigen CMS.

WordPress-Leistungsangebot →

Schulungen von kulturbanause

Wir bieten Seminare und Workshops zu den Themen Konzept, Design und Development. Immer up-to-date, praxisnah, kurzweilig und mit dem notwendigen Blick über den Tellerrand.

Übersicht Schulungsthemen →