Tutorials

Einige nützliche Hilfen und Code-Schnipsel, die ich immer wieder benötige und deshalb hier für alle sammle.

Zurück zur Übersicht

Eltern-Funktionen im Kindtheme (child-theme) bei Wordpress überschreiben

#Tutorials#Wordpress

Wenn man ein Theme nutzt, dass man ein wenig bearbeiten möchte, kommt man nicht drumrum ein Child-Theme zu erstellen. Hat man dieses nun erstellt und möchte Funktionen des Eltern-Themes überschreiben geht das am besten folgendermaßen:

- Die Funktion aus dem Parent-Theme komplett kopieren und in die functions.php des Child-Themes einfügen.

- Die Funktion unbenennen - am besten mit child_ vor dem funktionsnamen

- Die Funktion so abändern wie gewünscht

- Die alte Funktion deaktivieren

- Die neue Funktion aktivieren

Die alte Funktion deaktivieren

Um eine Funktion zu deaktivieren muss man die "Action" entfernen. Das Ganze sollte beim initialisern des Templates passieren. Das Ganze geht dann so: (Beispiel "thematic" Theme)


// Remove the default Thematic blogtitle function
function remove_thematic_actions() {
    remove_action('thematic_header','thematic_blogtitle',3);
}
// Call 'remove_thematic_actions' (above) during WP initialization
add_action('init','remove_thematic_actions');

Die neue Funktion aktivieren

Nun müssen wir die neue Funktion nur noch aufrufen. Das Ganze geht dann wie folgt:


add_action('thematic_header','child_thematic_blogtitle', 3);

Ich hoffe, dass das einigen von euch helfen wird!


Kommentare

  • Jürgen
    Wenn die child_foo_function aber im Template aufgerufen wird und einen Rückgabewert liefern soll, müssen alle Dateien mit solchen Aufrufen auch im Child Theme entsprechen überschrieben werden. Gibt es dazu auch eine elegante Lösung?
    Antworten
    • alexwatermann
      Actions liefern im Normalfall keinen Rückgabewert. Das tun die Filter. Also remove_filter(...) und add_filter(...) nutzen.
      Antworten
  • Irmen
    Vielen Dank - hilft mir sehr!!!
    Antworten

Hinterlasse einen Kommentar

Antworten abbrechen

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

Kommentar wird gespeichert
Danke für deinen Kommentar! Sobald er freigegeben wurde erscheint er hier.