geschrieben von Micha am 19. August 2010 | 5 Kommentare
In einem WordPress Framework oder auch Basis-Theme sind eine oder mehrere Widget Areas (Sidebars) definiert. Jetzt möchte man in dem Child-Theme, welches auf dem Framework oder dem Basis-Theme aufsetzt, eine oder mehrere Widget Areas nicht haben, weil man sie einfach nicht braucht und es nur zu unnötigen Verwirrungen führen würde.
Die Zeile unregister_sidebar('my-sidebar'); in der functions.php des Child-Themes richtet aber nichts aus. Warum? WordPress läd zuerst die function.php des Child-Themes und dann erst die des Frameworks. Die Sidebar, die wir enfernen wollen, ist noch garnicht da. Die wird erst mit dem Laden des Basis-Themes/Frameworks registriert.
Abhilfe schafft da ein Hook in der Registerfunktion im Framework/Basis-Theme.
//Code aus dem Framework zum Registrieren von 2 Sidebars
function xtreme_register_dynamic_sidebars() {
register_sidebar( array(
'name' => 'Sidebar One',
'id' => 'sidebar-one',
'description' => 'Sidebar One',
'before_widget' => '<li id="%1$s" class="widget %2$s">',
'after_widget' => '</li>',
'before_title' => '<h5 class="widget-title">',
'after_title' => '</h5>'
));
register_sidebar( array(
'name' => 'Sidebar Two',
'id' => 'sidebar-two',
'description' => 'Sidebar Two',
'before_widget' => '<li id="%1$s" class="widget %2$s">',
'after_widget' => '</li>',
'before_title' => '<h5 class="widget-title">',
'after_title' => '</h5>'
));
do_action('childtheme_sidebars');
}
add_action( 'widgets_init', 'xtreme_register_dynamic_sidebars' );
Ihr seht den Hook do_action(‘childtheme_sidebars’);
Jetzt springen wir diesen Hook einfach an:
//functions.php im Child-Theme
function xtreme_unregister_sidebar() {
unregister_sidebar('sidebar-two');
}
add_action( 'childtheme_sidebars', 'xtreme_unregister_sidebar' );
Und weg ist die Sidebar.
Hallo Micha,
interessante Idee, die das Grundrauschen bei den Widget Areas verringern würde. Scheint aber bei meinem Xtreme Beta 9 mit der Ergänzung der functions.php des Child Themes nicht zu funktionieren.
Hast Du eine Vermutung woran das liegen könnte?
Beste Grüße
Dieter
Ich habe das in der Beta 9 noch nicht drin. Bin heute selbst erst auf die Problematik gestoßen, als ich in dem Childtheme für unsere Domain gebaut hatte.
*grins*
Na, dann bin ich ja beruhigt.
Ich dachte schon, ich hätte wieder etwas überlesen bzw. nicht beachtet.
Hey, coole Idee. Dein Framework gefällt mir immer besser. Bin aber von dir auch nichts anderes gewohnt, als perfekte Arbeit.
Bin auch derzeit daran, ein Childtheme basierend auf der Beta 9 zu erstellen.
Kannst du schon absehen, ab wann es einen offiziellen Release geben wird?
Liebe Grüße
Birgit
Danke Birgit!
Ich bin gerade dabei, die Infrastruktur aufzubauen, dann muß ich noch jede Menge Doku schreiben.
Ich hoffe Mitte September, wenn nichts schief geht.