Ankerlink an den Anfang der Seite
poster 1703806 1920
Generic filters
Filter by Kategorien

Der Beitrag, geschriebem am 30. März 2012, ist schon etwas älter und könnte womöglich nicht mehr aktuell sein

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:

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

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.

<?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' );

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.

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

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 das Kommentarfeld nicht für Supportanfragen nutzen; hier kann kein Support angeboten werden. Die Angabe von Name oder E-Mail-Adresse ist optional, ein Spitzname wäre trotzdem nett.

Schreibe einen Kommentar

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

Hinweis: Name und E-Mail-Adresse (beides optional, da alle Kommentare moderiert werden) werden dauerhaft gespeichert. Über dieses Formular kann jeder Zeit die Löschung persönlicher Daten oder Kommentare angefordert werden; die Anfrage wird nicht veröffentlicht und nach der Bearbeitung gelöscht. IP-Adressen, die mit Kommentaren gespeichert werden, werden nach zwei Monaten automatisch gelöscht.

Ihre Nachricht wird möglicherweise zur Spam-Prüfung an OpenAI (USA) weitergeleitet. Weitere Informationen finden Sie in unserer Datenschutzerklärung.