Sidebar widgetfähig machen

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>

2 oder mehr dynamische Sidebars

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);
?>

“Meine Sidebar ist keine Liste!” – Widget-Ausgabe beeinflussen

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.