Una delle features più interessanti di WordPress è rappresentata dai widget, quelle porzioni di codice che, comodamente gestibili e configurabili dal backend del nostro CMS, aggiungono funzionalità tra le più disparate.
La versione attuale del CMS -siamo alla 3.2– consente di collocare i nostri widgets esclusivamente nella parte destra o inferiore delle pagine; in molti ne converranno che non sarebbe male poterne collocare anche altrove, o perlomeno dell’header, punto strategico -ad esempio- per il language switcher e altre funzionalità.
Al di la’ di capricci o questioni stilistiche, ci sono anche situazioni convenzionali, che per loro natura rendono difficoltoso l’impiego dei widgets, una su tutte, la scelta di un layout a due righe, il quale, non visualizzando la sidebar, preclude la visualizzazione dei relativi contenuti.
Una volta appreso come generare una nuova area widget, potremmo collocarla dove meglio crederemo, aggirando questo fastidioso imprevisto.
Per farlo, dobbiamo inizializzarla all’interno del file functions.php contenuto nella cartella del nostro tema (in wp-content/themes/), creando un nuovo oggetto con il codice di seguito
/** Registrazione area widget . */
add_action( 'widgets_init', 'area_widgets_init' );
/** Inizializzazione dell'area widget. */
function area_widgets_init()
{
// personalizziamo il nome e la descrizione in modo da poter rintracciare la nuova area nel backend
register_sidebar( array(
'name' => __( 'nome-nuova-area-widget', 'nome-area' ),
'id' => 'colonna-sinistra-widget',
'description' => __( 'Descrizione nuova area widget', 'nome-area' ),
'before_widget' => '<div id="%1$s">',
'after_widget' => '</div>',
'before_title' => '<h3>',
'after_title' => '</h3>',
) ); }
Si tratta della creazione di un oggetto “widget” e dell’assegnazione dei relativi parametri, quali nome e descrizione.
Fatto ciò, dunque, il nostro CMS “saprà” di dover predisporre un’altra area per i widgets.
Non resta che stabilire dove debba essere fisicamente collocata.
Pertanto, stabilito il punto esatto in cui la si vorrà visualizzare (ad esempio nell’header), andremo ad incollare il codice di seguito.
<?php // Area del nuovo widget, dove richiamiamo l'id
if ( is_active_sidebar( 'nome-nuova-area-widget' ) ) : ?>
<div id="nome-nuova-area-widget">
<?php dynamic_sidebar( 'nome-nuova-area-widget' ); ?>
</div><!-- #widget-sidebar .widget-area -->
<?php endif; ?>
Una volta creata la nuova area, non resterà che inserire qualcosa al suo interno e ammirare il risultato.
A voi la vostra nuova area widget-ready!