Funktionen aus dem Parent-Theme im Childtheme deaktivieren

Dieser Artikel ist ursprünglich am 21. 05. 2014 erschienen.
Das ist eine ganze Weile her. Der Inhalt ist wahrscheinlich nicht mehr aktuell.

Selbstverständlich kann man auch eine eigene functions.php ins Childtheme tun und zusätzliche Funktionen einbauen. Zum Beispiel ein zusätzliches Menü und weitere Sidebars oder Widget-Areas.

Andersherum funktioniert es aber auch: Falls das Parent-Theme Funktionen hat, die man nicht haben will, kann man die über die functions.php im Childtheme deaktivieren. Hier ein Beispiel, wie man Sidebars, die man nicht nutzen möchte, aus einem Parent-Theme herausfiltert:

function remove_some_widgets(){

	// Unregister some of the TwentyTen sidebars
	unregister_sidebar( 'first-footer-widget-area' );
	unregister_sidebar( 'second-footer-widget-area' );
	unregister_sidebar( 'third-footer-widget-area' );
	unregister_sidebar( 'fourth-footer-widget-area' );
}
add_action( 'widgets_init', 'remove_some_widgets', 11 );

Quelle: Codex


Torsten hat mich in seinem Kommentar zum Artikel „Ein WordPress-Child-Theme anlegen“ darauf aufmerksam gemacht, dass die functions.php im Childtheme aber vor der des Parent-Themes geladen wird. Das würde bedeuten, dass man etwas deregistriert, das noch gar nicht geladen wurde. Die Funktion im Childtheme würde also gar nicht greifen.

Der Trick hier ist die Priorität – im Beispiel oben ist das die kleine unscheinbare Zahl „11“ ganz unten rechts beim Hook widgets_init.

Zitat aus dem Codex:
In the example, note that we assign a priority of 11 when registering the widgets_init hook. This is because a child theme’s functions.php file is called before the parent theme’s, which means that our call to unregister_sidebar() would accomplish nothing since the sidebar has not yet been registered.
By lowering the priority of our action, we ensure that it is called after the parent theme’s functions.php file is loaded.

Das heißt also, wenn wir wollen, dass die Deregistrierung der Sidebars greift, müssen wir die Priorität richtig setzen. Die Priorität muss niedrig genug, damit die Funktion früher später einsetzt als die entsprechende im Parent-Theme.

» siehe auch Funktionen aus dem Parent-Theme im Childtheme deaktivieren (2)

Kommentare, die nichts mit dem jeweiligen Artikel zu tun haben, oder die (weitgehend) inhaltslos sind und keinen Mehrwert für andere Leserinnen und Leser bieten, veröffentlichen wir nicht.

2 Kommentare zu “Funktionen aus dem Parent-Theme im Childtheme deaktivieren

  • Hallo Kirsten, danke für diesen Beitrag. Mir hat das vorrangige Laden der Child functions schon Kopfzerbrechen gemacht. Der Hinweis mit der Prioritätszahl wird mir beim nächsten Mal mit Sicherheit weiterhelfen.

Die Kommentare sind geschlossen.