Wohin mit den WordPress Codeschnipsel?

Da hat man mal wieder einen hilfreichen WordPress Codeschnipsel gefunden und stellt sich die Frage, wohin damit jetzt eigentlich?

schnipsel-image

Berechtigte Frage, denn es gibt viele Möglichkeiten. In diesem Artikel möchte ich auf 3 Varianten eingehen und kurz ihre Vor- bzw. Nachteile darstellen.

Variante 1: functions.php des Themes nutzen

Diese Variante ist wohl die weit Verbreiteste.
Codeschnipsel kopieren, functions.php des aktiven Themes öffen, Schnipsel an das Ende kopieren, speichern, fertig. Keine große Erklärung nötig; Schnelligkeit und Einfachheit sind somit die Vorteile.

Demgegenüber stehen allerdings ein paar Nachteile:
Wie dem folgendem Schnipsel aus der wp-settings.php zu entnehmen ist, wird die functions.php nicht immer geladen, immer dann nicht, wenn WP_INSTALLING definiert ist.

// Load the functions for the active theme, for both parent and child theme if applicable.
if ( ! defined( 'WP_INSTALLING' ) || 'wp-activate.php' === $pagenow ) {
	if ( TEMPLATEPATH !== STYLESHEETPATH && file_exists( STYLESHEETPATH . '/functions.php' ) )
		include( STYLESHEETPATH . '/functions.php' );
	if ( file_exists( TEMPLATEPATH . '/functions.php' ) )
		include( TEMPLATEPATH . '/functions.php' );
}

Bei mehreren Schnipseln in der functions.php kann auch schnell die Übersicht verloren gehen, außerdem könnten bei einer Aktualisierung des Themes die Daten wieder verloren gehen. Stichwort Child Themes.

Variante 2: Ein Must-Use Plugin nutzen

Ein Must-Use Plugin? MU Plugins, in der deutschen Übersetzung Obligatorisch, sind PHP Dateien im /wp-content/mu-plugins Verzeichnis, die automatisch geladen werden.

Die Codeschnipsel können somit entweder jeweils in eine Datei oder alle direkt in einer Datei abgespeichert werden.
Diese Art von Plugins braucht übrigens auch nicht den üblichen File Header.

Der Vorteil liegt hierbei also bei der Organisation bzw. besseren Übersicht.
Ein weiterer Vorteil gegenüber der vorherigen (und auch nächsten) Variante ist, dass die MU Plugins früh geladen werden.

Die MU Plugins werden grundsätzlich immer geladen, heißt, auch bei einer Multisite Installation mit mehreren Blogs. Möchte man einen Codeschnipsel nur für einen Blog nutzen, so muss die jeweilige Blog ID abgefragt werden, oder verwendet die nächste Variante.

Variante 3: Ein simples, seitenspezifisches Plugin nutzen

Diese Variante hat vor kurzem Samuel Wood aka Otto in seinem Blog unter „Creating a Site-Specific Snippets Plugin“ veröffentlicht.

Hiebei wird ein einfaches Plugin wie folgt angelegt:

  1. Erstelle zunächst ein neues Verzeichnis im Plugin Verzeichnis, zum Beispiel /wp-content/plugins/example.de.
  2. Erstelle in dem neuen Verzeichnis eine leere PHP Datei, der Dateiname ist beliebig.
  3. Danach benötigt das Plugin einen File Header:
<?php
/*
Plugin Name: Plugin für example.de
Description: Codeschnipsel für example.de
*/

In diesem Plugin können jetzt die Codeschnipsel abgelegt werden. Entweder ein Plugin für alle oder für jeden Schnipsel ein Plugin, was den Vorteil mit sich bringt, dass sich die einzelnen Schnipsel/Plugins später einfach deaktivieren lassen.

Das waren drei verschiedene Varianten, wie man seine Codeschnipsel in WordPress integrieren kann.
Im Endeffekt muss nun jeder selbst entscheiden, so wie er es persönlich am Besten befindet.
Aber vielleicht gibt es ja noch andere Varianten, diese können natürlich gerne in den Kommentaren mitgeteilt werden.