Banner Widget in wordpress

Avete bisogno di inserire un nuovo spazio nel vostro blog in wordpress, con contenuti che cambierete spesso, ma non volete dover sempre mettere mano al template? L'ideale sarebbe di creare nel vostro template uno spazio come quelli che avete nella sidebar, in modo di gestire tutto dal pannello widget. 

Farlo è piuttosto facile, ma vi segnalo che bisogna mettere mano al template. Quindi la prima cosa fondamentale che dovete fare è un bel backup del tema che andate a modificare. Uno zip di tutta la cartella del tema e siete apposto.

Gli step da seguire sono:

  • dire a WordPress che c'è un nuovo contenitore di widget, che chiamerò myBanner_sidebar
  • impostare i vari modelli di pagine affinchè gestiscano l'output di quel contenitore
  • popolare il nostro contenitore con un widget come facciamo usualmente

Registro lo spazio

La registrazione delle widget zone (o sidebar) avviene all'interno del file function.php del vostro tema. Ricordo che i temi sono presenti nella cartella in cui è installato wordpress all'interno del path: ~\wp-content\themes\<nomeVostroTema>

All'interno del file ci sarà una funzione theme_init() all'interno delle quale  è richiamata la funzione register_sidebar(), per ogni contenitore di widget presente nel vostro tema.

A questo punto non vi resta che inserire la registrazione della vostro zona. Questo è un esempio di registrazione:

register_sidebar(array(
 'name' => 'myBanner_sidebar',
 'before_widget' => '<div class="widget">',
 'after_widget' => '</div>',
 'before_title' => '<div class="myBanner_sidebar>',
 'after_title' => '</div>'
)); 

Le varie proprietà hanno i seguenti significati:

  • name: nome della zona 
  • before_widget: l'html che wordpress inserirà prima di ogni widget che inserite
  • after_widget: l'html che wordpress inserirà dopo ogni widget che inserite
  • after_title: l'html che wordpress inserirà prima del vostro contenitore 
  • before_title: l'html che wordpress inserirà dopo il vostro contenitore 

Nel caso in cui voleste valorizzare in modo particolare il DIV prima di ogni widget codex suggerisce questa metodologia:

'before_widget' => '<li id="%1$s" class="widget %2$s">',

Dove %1$s verrà popolato con un nome univoco del widget, mentre %2$s con il tipo di widget (es: widget_text).

Una volta modificata la pagina sul server remoto, nell'interfaccia di gestione widget avrete una nuova zona denominata "myBanner_sidebar" dove mettere quello che volete. Per quanto riguarda il come visualizzare nel sito è necessario che usiate nel modo corretto le proprietà sopra definite e i CSS con le relative classi.

 

Richiamo lo spazio nel template

Ora bisogna dire a wordpress dove pubblicare i widget che avete inserito nel nuovo contenitore. Se ad esempio volete caricare la vostra zona solo in homepage dovete trovarle uno spazio dentro a index.php. Se volete che appaia solo nella pagina dei post la metterete in single.php oppure in header.php per farla apparire in ogni pagina. Qui dovete capire un attimo come è il rendering del tema e quello che desiderate voi.

Per richiamare la nuova zona widget è sufficiente questa istruzione

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

Caricate il tutto sul server e il gioco è fatto.

 

Popolo lo spazio

Adesso non vi resta che inserire uno o più widget nella vostra zona. Nel caso in cui vogliate inserire un banner potete inserire un singolo widget in myBanner_sidebar del formato Text/HTML e cambiarlo ogni volta che volete, senza dover più toccare template e ftp.

Grazie a Nicola Greco per il supporto tecnico, per la parte widget.

Loading Facebook Comments ...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *