dynamicinternet Webdesign

Das Blog

Themen, Tutorials sowie Tipps & Tricks über Webdesign, (X)HTML und CSS, Programmierung, WordPress und was uns sonst noch bewegt.

RSS abonnieren

WordPress Child-Themes – Widget Areas entfernen

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.

5 Kommentare
  1. Dieter sagt:

    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

  2. Micha sagt:

    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.

  3. Dieter sagt:

    *grins*
    Na, dann bin ich ja beruhigt. ;-)
    Ich dachte schon, ich hätte wieder etwas überlesen bzw. nicht beachtet. :-D

  4. Birgit sagt:

    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

  5. Micha sagt:

    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.

Einen Kommentar schreiben