Um die Sidebar zu integrieren und diese "Widgetfähig" zu machen benötigen wir zunächst die Funktion register_sidebar. Dies wird ähnlich wie bei den Navigationen in der functions.php gemacht.
<!-- Sidebars -->
<?php
add_action( 'widgets_init', 'mo_register_sidebar' ); //Name kann frei gewählt werden
function mo_register_sidebar() { //muss hier der Selbe sein
register_sidebar( array(
'name' => 'sidebar-1', //Name im Backend
'id' => 'sidebar-1', //ID für Template tag
'description' => 'Haupt-Seitenleiste', //Beschreibung für Seitenleiste im Backend
'before_widget' => '<div id="%1$s" class="widget %2$s">', //Code der vor dem Widget ausgeführt wird
'after_widget' => '</div>', //Code der nach dem Widget ausgeführt wird
'before_title' => '<h5 class="widgettitle">', //Code der vor dem Titel ausgeführt wird
'after_title' => '</h5>', //Code der nach dem Titel ausgeführt wird
) );
}
//body class no-sidebar
function mo_no_sidebar( $classes ) {
if ( ! is_active_sidebar( 'sidebar-1' ) ) {
$classes[] = 'no-sidebar';
}
return $classes;
}
add_filter( 'body_class', 'mo_no_sidebar' );
?>
Damit die Widgets welche wir im Backend hinzufügen auch angezeigt werden, muss die Sidebar im Markup noch wie Template tag eingefügt werden. Dieser Template tag lautet dynamic_sidebar. Üblicherweise wird dieser im <aside> Element in der sidebar.php eingefügt. Beispielsweise könnte dies dann so aussehen.
<?php if ( is_active_sidebar( 'sidebar-1' ) ) : ?><!--Prüft ob die Sidebar Widgets enthält. ID muss in der functions.php registriert sein.-->
<aside class="site-sidebar">
<?php dynamic_sidebar( 'sidebar-1' ); ?><!--ID muss in der functions.php registriert sein.-->
</aside>
<?php endif; ?>