Eigene Sidebars einbinden

Robert Windisch edited this page Jul 25, 2015 · 1 revision

Deutsch / German

Clone this wiki locally

Zuerst legst du in deinem Childtheme einen Ordner includes an. Danach im Ordner includes einen Unterordner sidebars. Damit sieht die Ordnerstruktur genau so aus wie in Xtreme One. Hintergrund ist der: zuerst schaut das Framework im Childtheme in includes/sidebars/ nach den existierenden Sidebars, dann erst im Framework selbst. Das bedeutet, wenn du im Childtheme eine Datei sidebar-one.php hast und eine im Framework, wird die sidebar-one.php aus dem Childtheme geladen.

Code der Sidebar

Wichtig: Dieser Code benötigt Xtreme One Version 1.1 oder höher Lege nun im Childtheme in includes/sidebars/ eine Datei sidebar-three.php an. Der Dateiname spielt keine Rolle, er sollte nur kleingeschrieben und aussagekräftig sein. In diese Datei kommt folgender Code:

xtreme_sidebar_widget_start_tag();
// Code oder Markup in der Sidebar
xtreme_sidebar_widget_end_tag();?>

Die Funktionen xtreme_sidebar_widget_start_tag() und xtreme_sidebar_widget_end_tag() sorgen für die entsprechenden Wrapperelemente. Ist keine HTML5-Ausgabe aktiviert, wird <ul class="sidebar"> ausgegeben, bei aktiviertem HTML5 <div class="sidebar">. So bleibt die volle Xtreme One Funktionalität erhalten. Du kannst natürlich auch auf die beiden Funktionen verzichten und eigenes Markup in die Sidebar schreiben. Die Sidebar steht jetzt im Xtreme One Backend zur Auswahl bereit.

Widget Area registrieren

Soll die Sidebar eine Widget Area bekommen, sind 2 Schritte nötig. Die Widget Area in der Sidebar definieren und sie für WordPress zu registrieren. Dazu erweiterst du den Code in der sidebar-three.php:

xtreme_sidebar_widget_start_tag();
if ( is_active_sidebar( 'sidebar-three' ) ) :
    dynamic_sidebar( 'sidebar-three' );
else: ?>
     <h3>Sidebar 3</h3>
<?php endif;
xtreme_sidebar_widget_end_tag(); ?>

Um die Sidebar zu registrieren, schreibst du eine Funktion in die functions.php deines Childthemes.

function xtreme_demo_action_xtreme_childtheme_sidebars() {
    if ( !xtreme_is_html5() ) {
        $el = 'li';
    } else {
        $el = 'section';
    }
    $htag = xtreme_get_sidebar_headline_tag();

    register_sidebar( array(
        'name' => 'Sidebar Three',
        'id' => 'sidebar-three',
        'description' => 'Meine Sidebar Three',
        'before_widget' => '',
        'after_widget' => '',
        'before_title' => '',
        'after_title' => ''
    ));
}
add_action( 'xtreme_childtheme_sidebars', 'xtreme_demo_action_xtreme_childtheme_sidebars'); ?>

In dieser Funktion wird zuerst abgefragt, ob HTML5-Ausgabe aktiviert ist oder nicht. Bei aktiviertem HTML5 ist das Widgetelement <section>, bei XHTML <ul>. Die Funktion xtreme_get_sidebar_headline_tag() liefert das Überschriftenelement, welches in Xtreme One->Standardlayout->Tag für die Überschriften der Sidebars ausgewählt wurde. Auch hier bleibt die volle Funktionalität von Xtreme One erhalten. Diese Vorgehensweise ist aber kein Muss. Du kannst eigene Elemente für die Widget-Container definieren oder das Element der Widgetüberschriften direkt bei before_title und after_title hinein schreiben. In dieser Funktion wird zuerst abgefragt, ob HTML5-Ausgabe aktiviert ist oder nicht. Bei aktiviertem HTML5 ist das Widgetelement