Wichtigen Code in functions.php speichern? Eigenes Plugin dafür erstellen? Nein! Wichtiger Code kommt in den Ordner mu-plugins!

Oft wird man gefragt:

Wohin mit Anpassungen am Theme? Wohin mit Code-Snippets von StackExchange? Wohin mit kleinen, eigenen Funktionalitäten?

Dafür ist eigentlich die Datei functions.php im Theme zuständig.

Problem Problem Problem: Wenn das nicht das eigene Theme ist, sind die Änderungen beim nächsten Theme-Update weg!

Was war daher die Lösung? Genau!

Child-Themes!

Dadurch bleiben Änderungen bei jedem Update erhalten.

Ist das die beste Lösung für eigenen Code?

Meistens nicht!

Ein Plugin ist für eigene Funktionalitäten meist die beste Lösung.

Blöd nur, dass man das deaktivieren kann. Oder, dass es viel zu spät in Abläufe eingreift.

Doch halt, dafür gibt es eine Lösung!

Eine, die noch viel einfacher ist, als eigene Plugins erstellen, irgendwelche functions.php Dateien anzugreifen o.ä.

Must Use Plugins ist die Lösung

Must Use oder mu-plugins sind eigentlich keine Plugins. Es sind PHP-Dateien, die von WordPress automatisch geladen werden, wenn Sie im Verzeichnis wp-content/mu-plugins abgelegt werden.

https://codex.wordpress.org/Must_Use_Plugins

Der WordPress-Codex sagt über mu-plugins:

Must-use plugins (a.k.a. mu-plugins) are plugins installed in a special directory inside the content folder and which are automatically enabled on all sites in the installation.

Also:

mu-plugins sind Plugins, die in einem speziellen Verzeichnis im content Verzeichnis installiert werden. Diese Plugins werden automatisch auf allen Seiten einer Installation aktiviert. (Anmerkung: Mit Seiten sind Multisite-Blogs gemeint)

Die Vorteile sind also:

  • Kein formales Plugin notwendig, nur eine PHP-Datei mit Code. Daher weniger Arbeitsaufwand und Code Overhead
  • Dieser Code wird immer aktiviert. Es muss kein Plugin aktiviert werden.
  • Dieses „Plugin“ kann nicht deaktiviert werden, es scheint auch nicht in der Pluginübersicht auf
  • Code wird vor dem laden anderer Plugins geladen.
  • Code/Plugin  wird auf allen Blogs einer Multisite aktiviert.

 

Diese Funktionalität von WordPress ist verdammt praktisch.

Ich brauch für kleinere Funktionen nicht gleich ein eigenes Plugin erstellen. Man kann Funktionalitäten einbauen, ohne dass diese deaktiviert werden oder bei Updates verschwinden.

Eine kleine, saubere und einfache Lösung, um WordPress in der Funktionalität zu erweitern. Super!

 

4 Gedanken zu „Wichtigen Code in functions.php speichern? Eigenes Plugin dafür erstellen? Nein! Wichtiger Code kommt in den Ordner mu-plugins!

  1. Hm,
    ist das noch aktuell?

    Ich benutze ein Child-Theme, und haben in dessen functions.php, stehen NUR meine Änderungen (Emoji support entfernen, Kategorien deaktivieren, etc.)

    Ich bin kein Profi, aber ich sehe im Moment nicht, wieso das schlecht wäre? Die normale functions.php vom ursprünglichen Theme wird ja nicht verändert.

    Würde mich über eine für Newbies verständliche Antwort freuen.

    1. Servus!
      Ja, das ist noch aktuell.
      Die Must-Use-Plugins sind Kernfunktionalität von WordPress!

      Änderungen im eigenen Theme oder Childtheme in der functions.php vorzunehmen ist ok!
      Must-Use-Plugins sind für die Fälle wo ich Funktionalität hab, die ich unbedingt brauch.
      Die vom Kunden oder von anderen Benutzern nicht deaktiviert werden sollten. Oder dürfen.

      Wird dein Theme deaktiviert, dann sind Emojis und Kategorien wieder aktiv.
      Daher sind deine Änderungen an das Theme gebunden.
      Was ja meist gewünscht ist.

      Mit den Must-Use-Plugins hab ich aber die Möglichkeit, solche Funktionen vom Theme (oder Plugins) zu entbündeln.
      Ich bekomm mit den Must-Use-Plugins die Möglichkeit, Dinge einfach unumgehbar vorzugeben.

      Mit einem Must-Use-Plugin könntest du für deine WordPress-Seite vorgeben, dass Emojis und Kategorien immer deaktiviert sind.
      Egal welches Theme verwendet wird.

      Das wär also themeübergreifend.
      Ist das verständlich erklärt?

Schreibe einen Kommentar

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