Wordpress: inserire i widget nell'header

Molti temi di Wordpress, compreso TwentyEleven, non hanno per impostazione predefinita un'area per i widget nell'header del tema. Possiamo fare in modo che il nostro header accetti i widget in modo molto semplice. Vediamo come.

Per prima cosa, aggiungiamo il seguente codice al file functions.php del nostro tema. In questo caso sto utilizzando il tema TwentyEleven, quindi il codice che segue va inserito nella funzione twentyeleven_widgets_init():


register_sidebar( array(
		'name' => __('Header', 'twentyeleven'),
		'id'   => 'header',
		'description'   => __('An optional widget area for your site header', 'twentyeleven'),
		'before_widget' => '<aside id="%1$s" class="widget %2$s">',
		'after_widget'  => '</aside>',
		'before_title'  => '<h3 class="widget-title">',
		'after_title'   => '</h3>',
));

Spostandoci nella pagina dei widget noteremo che la nostra nuova area รจ stata correttamente creata:

A questo punto dobbiamo modificare il file header.php per permettere a Wordpress di visualizzare i widget. Inseriamo il seguente codice nel punto in cui vogliamo che appaiano i widget:


<div id="widgetized-header">

    <?php if (function_exists('dynamic_sidebar') && dynamic_sidebar('header')) : else : ?>

    	<div class="pre-widget">
			<!--messaggio alternativo -->
		</div>

	<?php endif; ?>

</div>

A questo punto possiamo lavorare con i CSS e dare gli stili voluti ai blocchi contenenti i vari widget.