Wohin mit meinen WordPress-Snippets?

poster 1703806 1920
Bildquelle: Pixabay, MALCOLUMBUS

Als WordPress-Customizing mit PHP noch in meiner Zukunft lag, stolperte ich auf der Suche nach Lösungen über massenhaft Code-Snippets. Falls erwähnt wurde an welchem Ort diese Snippets eingebracht werden sollten, handelte es sich normalerweise um die functions.php „meines“ Themes.

Nun könnte diese functions.php jedoch auch Twentyten oder einem anderen Theme aus dem WordPress-Directory gehören, und dann wäre sie alles andere als ein sicherer Ort für zusätzlich eingesammelte (Theme)-Funktionen. Beim nächsten Theme-Upgrade würde die functions.php überschrieben, und alle selbst hinzufügten Funktionen wären weg.

Ein sicherer Ort für die zusätzlichen Funktionen ist entweder ein Childtheme, oder ein eigenes Plugin.

Childtheme

Nachtrag: Theme-Einstellungen über die Customizer-API (seit WordPress 3.4) werden unter dem Namen des aktiven Themes gespeichert. Nach aufwendigen Anpassungen ist die Umstellung auf ein Childtheme in manchen Fällen mit einer ebenso aufwendigen Neukonfiguration verbunden (oder mit einem Eingriff in die Konfigurationstabelle).

Schritt 1: Ordner unter Themes anlegen und ihn signifikant benennen (z.B. meinchildtheme)

Schritt 2: dort eine neue Datei style.css hinzufügen und dem Beispiel entsprechend befüllen:

<code>/*
 * Theme Name:  Mein Childtheme
 * Author: ich
 * Version: 1.0
 * Text Domain: meinchildtheme
 * Template: twentytwelve 
 */</code>

Stilanpassungen per CSS werden in dieser Datei vorgenommen.

Template: twentytwelve als Template den Slug des Themes angeben, das mit dem Childtheme ergänzt wird.

Schritt 3: die Datei functions.php anlegen. Um die Stile des Parent-Themes nicht zu verlieren, ist es ggf. erforderlich, dessen Stylesheet einzubinden.

<code><?php
function meinchildtheme_enqueue_styles() {
    wp_enqueue_style( 'parent-stylesheet', get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-stylesheet', get_stylesheet_directory_uri() . '/style.css' );
}
add_action( 'wp_enqueue_scripts', 'meinchildtheme_enqueue_styles' );</code>

Darunter kommen dann die neuen Snippets, die auch nach dem Update des „Parent“-Themes erhalten bleiben.

Schritt 4: Das Theme aktivieren, ggf. Einstellungen anpassen und mit der Individualisierung loslegen (CSS, Funktionen).

Alternative: Auslagerung von Funktionen in ein Plugin

Schritt 1: Ordner unter Plugins anlegen und ihn signifikant benennen (z.B. mydomain-themefunctions)

Schritt 2: dort eine gleichnamige (z.B. mydomain-themefunctions.php) PHP-Datei anlegen.

Schritt 3: Der frischen PHP-Datei einen Plugin Namen und eine Kurzbeschreibung geben.

<code><?php
/*
Plugin Name: mydomain functions
Description: Add Functions to my mydomain WordPress
*/</code>

Unter „Plugins“ sollte es dann bereit für die Aktivierung in der Liste stehen.

Schritt 4: Das Plugin aktivieren und neue Snippets testen.

Die functions.php des Original-Themes bleibt davon jeweils unberührt.

Ergänzung (06.08.2021)

Plugin Code Snippets

Der bequemste Weg dürfte wohl das Plugin Code Snippets sein, das es (noch) kostenfrei im WordPress-Repository zum Download gibt. Der Vorteil davon ist, dass es Code der Fehler enthält, gar nicht erst speichert. Außerdem kann man damit seine Snippets übersichtlich verwalten, sowie aktivieren oder deaktivieren (ohne Code löschen zu müssen).

Bitte Kommentarfunktion nicht für Supportanfragen nutzen. Dem kann hier nicht entsprochen werden. Die Angabe einer E-Mail-Adresse und eines Namens ist nicht erforderlich. Einen (Spitz)-Namen zu nennen wäre aber doch nett.

Schreibe einen Kommentar

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

Hinweis: Sowohl angegebener Name als auch E-Mail-Adresse (beides ist optional, dafür werden alle Kommentare vor Veröffentlichung geprüft) werden dauerhaft gespeichert. Du kannst jeder Zeit die Löschung Deiner Daten oder / und Kommentare einfordern, direkt über dieses Formular (wird nicht veröffentlicht, und im Anschluss gelöscht), und ich werde das umgehend erledigen. – Mit hinterlassenen Kommentaren hinterlegte IP-Adressen werden nach zwei Monaten automatisch gelöscht

publicly queryable