WordPress.org

Deutsch

Internationale Foren

[Geschlossen] Wie kann ich mein Theme Widget-fähig machen? (1 Beitrag)

  1. Robert Windisch
    Administrator
    Veröffentlicht vor 1 Monat #

    <h4>Sidebar widgetfähig machen</h4>
    Zunächst muss folgender Code in die functions.php des Themes kopiert werden:

    <?php
    if ( function_exists('register_sidebar') )
    register_sidebar();
    ?>

    Dies ist der mindestens benötigte Code um die Sidebar widgetfähig zu machen. Die minimalistische sidebar.php dazu sieht so aus:

    <ul>
    <?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : endif; ?>
    </ul>

    Die Sidebar selbst kann noch Code enthalten, um zusätzliche Elemente zu den Widgets zu enthalten, oder eine Standard-Sidebar anzuzeigen, wenn keine Widgets auf die dynamische Sidebar gezogen wurden. Dazu beispielhaft der folgende Code für die Sidebar:

    <ul id="sidebar">
    <?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>
    <!-- Standard-Sidebar, wenn keine Widgets vorhanden sind -->
    <?php endif; ?>
    <!-- zusätzliche statische Sidebar-Elemente -->
    </ul>

    <h4>2 oder mehr dynamische Sidebars</h4>
    Wenn man 2 oder mehr dynamische Sidebars in seinem Theme haben möchte, dann verwendet man statt register_sidebar() die Funktion register_sidebars($n), wobei $n die Anzahl der Sidebars enthält. In der Sidebar wird dann die dynamische Sidebar mit dynamic_sidebar($i) angesprochen (beginnend mit $i = 1).

    Beispiel functions.php für 3 dynamische Sidebars:

    <?php
    if ( function_exists('register_sidebar') )
    register_sidebars(3);
    ?>

    <h4>"Meine Sidebar ist keine Liste!" - Widget-Ausgabe beeinflussen</h4>
    Ist deine Sidebar keine verschachtelte Liste, oder möchtest du den generierten HTML-Code aus anderen Gründen beeinflussen, dann kannst du den obigen Code wie folgt erweitern:

    if ( function_exists('register_sidebar') )
    register_sidebar(array(
    'before_widget' => '<div id="%1$s" class="widget %2$s">',
    'after_widget' => '</div>',
    'before_title' => '<div class="title">',
    'after_title' => '</div>',
    ));

    Mit diesem Code solltest du genügend CSS-Selektoren bekommen, um jedes Widget individuell stylen zu können.

    Mehr Infos über WordPress-Widgets gibts bei automattic.

Thema geschlossen

Dieses Thema wurde geschlossen.

Über dieses Thema

Schlagwörter

Keine Tags bisher.