Dopo aver pubblicato il post di qualche giorno fa riguardante la creazione di una barra laterale dinamica, ripensando a quello che avevo scritto mi sono chiesto: “e se volessi aggiungere più di una barra laterale, e se volessi che entrambe fossero widget-ready, come dovrei fare?”.
Siccome la soluzione non mi giungeva così automaticamente come mi ero aspettato, sono andato a cercare nelle varie documentazioni di Wordpress in mio possesso una possibile soluzione, e quella che ho trovato, sebbene molto semplice, è risultata molto interessante e per nulla scontata. Ecco perchè ho deciso di scrivere questo post sull’argomento.
Dopo queste belle parole introduttive, passiamo all’azione vera e propria, che credo vi interessi molto di più.
Se avete seguito le istruzioni del mio post precedente su come creare una barra laterale dinamica, adesso dovreste aver creato i file sidebar.php e function.php contenenti il codice per la barra laterale.
Per aggiungere una seconda barra laterale, innanzitutto creiamo un file chiamato sidebar2.php con un editor di testo.
All’interno di questo copiamo semplicemente il codice che abbiamo utilizzato per la prima barra laterale, modificando solamente l’identificatore unico (id) per poi poterla gestire comodamente attraverso i Css (io l’ho chiamato semplicemente sidebar2):
<ul id="sidebar2">
<?php if ( !function_exists('dynamic_sidebar')
|| !dynamic_sidebar() ) : ?>
</ul>
Ora è il momento di utilizzare un piccolo trucco di prestigio per utilizzare entrambe le barre laterali. Aprite il file function.php e al posto della stringa di codice register_sidebar() inserite register_sidebars(n) dove al posto di n scriverete il numero delle barre laterali dinamiche che vorrete utilizzare. Nel mio caso ho scritto ovviamente 2:
<?php
if ( function_exists('register_sidebar') )
register_sidebars(2);
?>
Ora dovremo specificare quale barra laterale è la prima e quale la seconda. Per fare questo semplicemente apriamo il file sidebar.php e inseriamo il numero 1 come argomento della funzione !dynamic_sidebar() come nell’esempio:
<ul id="sidebar">
<?php if ( !function_exists('dynamic_sidebar')
|| !dynamic_sidebar(1) ) : ?>
</ul>
La stessa cosa deve essere fatta con il file sidebar2.php, utilizzando però ovviamente il numero 2, ecco il risultato:
<ul id="sidebar2">
<?php if ( !function_exists('dynamic_sidebar')
|| !dynamic_sidebar(2) ) : ?>
</ul>
A questo punto non dobbiamo fare altro che richiamare entrambe le nostre barre laterali all’interno del file index.php. Per fare questo dovrete semplicemente modificare il codice nel seguente modo:
<?php get_sidebar(); ?>
<?php include(TEMPLATEPATH . '/sidebar2.php'); ?>
In questo modo verranno richiamati sia il file sidebar.php che sidebar2.php. Ora quindi non dovrete fare altro che modificare il tema attraverso i Css per adattare entrambe le vostre barre laterali nel modo che preferite.
Per aggiungere o togliere i widget in base all’uso che ne volete fare nel vostro tema, basterà utilizzare il Pannello di Amministrazione di Wordpress e scegliere attraverso il menu a tendina in quale barra laterale aggiungere o togliere i vari widget.
Ecco fatto, ora avete creato due barre laterali dinamiche pronte da utilizzare con i widget di Wordpress. Se avete problemi o suggerimenti non esitate a scrivere nei commenti… Alla prossima!
Grazie mille molto utile!!
Grazie del vostro aiuto per quando riguarda l’inserimento delle due barre laterali.
Il problema è che non sò come modificare style.css di poter fare in modo di esere riconosciuti tutte due le barre
Se vuole vedere basta clicare sul mi website e vedrai come è transoramta la home, cioè non riconosce ne il colore ne la sua barra laterale originalesidebar1 ne quella nuova sidebar2
@proletari : non capisco bene il tuo problema, adesso sul tuo sito vedo un tema con due barre laterali (sulla destra), hai cambiato tema? Altrimenti prova a spiegare meglio il probema.
Grazie di avermi risposto
Allora quelle due barre che vedi eranno gia nel thema.
Però io volevo aggiungere altre due a sinistra uguale a quelle.
Avevo fato tutto ciò che insgnevi nel tuo articolo sopracitato, pensavo di poter arrivare ad un altra sidebar2 come quelle che ho però impossibile perche poi non riconosce ne meno quelle sue.
Di qeullo che ho “indagato” la theme non permette altre barre laterali, spero di non essere sbagliato.
Grazie di nuovo
Proletari
Intanto grazie! Utilissimo tutorial. Ho una domandina.
Vorrei modificare quello che appare prima e dopo tutte le sidebar che ho inserito (che sono un bel po’, sì io esagero!). Cambiando, per esempio, il nome alle classi e soprattutto togliendo il li per modificarlo in div. Credo, dopo alcune ricerche, di dover usare codici tipo ‘before_title’ => ” eccetera. Ho provato a inserire qualcosa nel file functions.php ma non funziona. Non c’è una soluzione rapida che a me sta sfuggendo sicuramente? Grazie!!
Fa niente! Ho risolto!
noooooo!!!! stavo modificando e mi dice Parse error: syntax error, unexpected ‘(‘ in /membri/villacidresecalc/wp-content/themes/aeros/functions.php on line 2
e adesso???????????????!!!!!!!!!