Creare Sidebar multiple per i Widget di WordPress

A partire dalla versione 2.2, i Widget di WordPress permettono di gestire la visibilità e l'ordinamento di vari elementi all'interno della barra laterale del blog. Ad esempio la lista delle Categorie, dell'Archivio mensile, i Post più letti etc...
Per poter utilizzare questa funzionalità bisogna installare anche un tema che supporti i Widget. La maggior parte dei temi lo è, ma nel caso in cui il tema scelto non fosse compatibile o che l'utente voglia crearsene uno da zero, bisogna effettuare delle modifiche. Ecco quali:

Passo 1: Creare (o modificare) il file functions.php

Se nella cartella del proprio tema il file functions.php non esiste, va creato e al suo interno va inserito questo codice:

if ( function_exists('register_sidebar') ) {
    register_sidebar(array(
        'before_widget' => '<li id="%1$s" class="widget %2$s">',
        'after_widget' => '</li>',
        'before_title' => '<h2 class="widgettitle">',
        'after_title' => '</h2>',
    ));
}

Passo 2: Aggiungere una Sidebar dinamica al Tema

Per mostrare i Widget, è necessario modificare il file sidebar.php inserendo questa riga:

if ( !function_exists('dynamic_sidebar') || ! dynamic_sidebar() ) :
// codice html da mostrare se i Widget non sono supportati
endif;

Passo 3: modificare il file functions.php per aggiungere Sidebar multiple

Per aggiungere altre sidebar, modifichiamo il file functions.php in questo modo:

// sidebar 1
if ( function_exists('register_sidebar') ) {
    register_sidebar(array(
        'name'=>'sidebar1',
        'before_widget' => '<li id="%1$s" class="widget %2$s">',
        'after_widget' => '</li>',
        'before_title' => '<h2 class="widgettitle">',
        'after_title' => '</h2>',
    ));
}
// sidebar 2
if ( function_exists('register_sidebar') ) {
    register_sidebar(array(
        'name'=>'sidebar2',
        'before_widget' => '<li id="%1$s" class="widget %2$s">',
        'after_widget' => '</li>',
        'before_title' => '<h2 class="widgettitle">',
        'after_title' => '</h2>',
    ));
}

Passo 4: Aggiungere le Sidebar multiple al Tema

Per aggiungere le due nuove Sidebar dinamiche appena create, al nostro tema, è sufficiente modificare il file sidebar.php in questo modo

// sidebar 1
if ( !function_exists('dynamic_sidebar') || ! dynamic_sidebar('sidebar1') ) :
// codice html da mostrare se i Widget non sono supportati
endif;
// sidebar 2
if ( !function_exists('dynamic_sidebar') || ! dynamic_sidebar('sidebar2') ) :
// codice html da mostrare se i Widget non sono supportati
endif;

Passo 5: Aggiungere una descrizione alle Sidebar (solo per WP .2.9)

A partire dalla versione 2.9, WordPress supporta anche le descrizioni delle varie Sidebar: basta aggiungere all'array passato alla funzione register_sidebar l'elemento description:

if ( function_exists('register_sidebar') ) {
    register_sidebar(array(
        'name'=>'sidebar1',
        'description' => 'Sidebar Numero 1',
        'before_widget' => '<li id="%1$s" class="widget %2$s">',
        'after_widget' => '</li>',
        'before_title' => '<h2 class="widgettitle">',
        'after_title' => '</h2>',
    ));
}


2 Commenti

  1. [...] Ora è possibile specificare una descrizione per ciascuna sidebar che utilizza i Widget. Questa funzionalità che può tornare utile all'interno di temi che ne utilizzano più di una, in modo da poter gestire più agevolmente la disposizione dei Widget. Un esempio e delle screenshots sono disponibili in questo post: Sidebar (widget area) descriptions in WordPress 2.9, mentre per aggiungere sidebar multiple al tuo blog, leggi il post Creare Sidebar multiple per i Widget di WordPress [...]

  2. Andrea scrive:

    Salve,
    sto cercando di inserire una seconda sidebar nel tema ahimsa che utilizzo nel mio sito. Tuttavia risulta praticamente impossibile anche usando la guida che ho letto qui. Potreste darmi una spiegazione passo per passo?
    grazie

Lascia un Commento