
Nelle ultime settimane ero alla ricerca di qualche trick per aggiungere una sidebar (barra laterale) in un tema per Wordpress, come quello che uso, che presenta originariamente una sola sidebar (quella che al momento è a sinistra).
Dopo aver cheisto in giro ed anche nel Forum ufficiale di Wordpress Italia, non ho trovato alcuna soluzione che funzionasse davvero, e che fosse widget-ready, cioè permettesse di visualizzare la sidebar nella sezione Widget del pannello di admin, e di aggiungere (con successo) una qualsiasi widget.
Nel migliore dei casi, la sidebar appariva, ma erano presenti solo il calendario ed il blogroll, e qualsiasi widget aggiungessi, non veniva visualizzata. In altri casi, aggiungendo le widget e cliccando su SALVA, appariva un errore php, segno che qualcosa era sbagliato!
Unendo i consigli trovati in giro e quelli di questo articolo, sono giunto ad una soluzione “personale”, e che si è concretizzata con la nuova sidebar, che in questo tema appare alla destra degli articoli.
Prima di tutto bisogna andare nella cartella del proprio tema Wordpress e, in caso non esistesse, creare un nuovo file chiamato functions.php così composto:
Come si può vedere, nel campo ‘name’ bisogna indicare dei nomi per individuare facilmente le sidebar, e i campi ‘before/after’ servono per definire gli stili css delle widget, e sono quindi relativi al proprio foglio di stile. Per esempio, nel mio caso:
Dando per scontato che il vostro tema presenta di default una sola sidebar, bisogna andare a rinominare il file sidebar.php in sidebar1.php.
Questo file rappresenta la prima sidebar originale (nel mio caso la sidebar di sinistra).
Bisogna poi creare un file chiamato sidebar2.php composto da questo codice:
Dove il div navigation_right l’ho aggiunto io ed è relativo al mio foglio di stile, ed a grandi linee effettua un posizionamento assoluto della sidebar:
Adesso non rimane che aggiungere entrambe le sidebar nelle pagine di Template del vostro tema (es. index.php page.php single.php archive.php).
Bisogna sostituire, in queste pagine, il codice che si trova press’a poco nella parte finale del codice, e che presenta un get_sidebar con:
Fatto? Adesso basterà andare nel pannello di admin, sezione Widget, e dovreste visualizzare, in alto a destra, una finestra per selezionare una delle due sidebar. Provate ad aggiungere delle widget, e vedrete che, come il tema qui utilizzato nel mio sito, appariranno due sidebar a destra e sinistra del testo.
Consigli, esperimenti, varie ed eventuali? Scrivetele pure nei commenti!
Link to this page
maggio 26th, 2009 at 11:40
Ottimo articolo, solo che non sto siuscendo ad sucire dalla mia situazione.
In questa pagina:
http://www.soldiwebonline.com/contattaci/
le du sidebar che dovrebbero stare a destra si vanno a mettere sotto il post, mentre nelle altre pagine no.
Puotresti darmi una mano?
Grazie anticipatamente
Francesco
maggio 26th, 2009 at 12:29
Ciao, grazie per i complimenti.
La questione, prevedibile, è dovuta al fatto che si deve giocare molto col foglio di stile.
Se usi una posizione fissa per le sidebar, come l’esempio nell’articolo, che recita per esempio 840pixel a partire dal bordo dello schermo, per la sidebar alla destra degli articoli, le barre si troveranno sempre in quella posizione, qualune cosa accada.
Sicuramente ci deve essere un conflitto con qualche altra classe del tuo css, controllalo tutto da cima a fondo, all’inizio è inevitabile perderci del tempo, buona fortuna!
luglio 13th, 2009 at 02:15
Grazie per aver condiviso questo HOWTO, l’ho applicato con successo: http://www.quacos.com/2009/07/13/consulenza-su-wordpress-per-mk-arredamenti/
luglio 13th, 2009 at 16:42
Ciao,
grazie a te per averlo segnalato, felice che sia riuscito ad usarlo con successo!
gennaio 1st, 2010 at 22:17
Ho seguito passo per passo la tua guida, ma non sono assolutamente riuscito ad inserire una colonna aggiuntiva, anzi non mi viene neanche vista dal cms, c’e’ qualche altra forma di aiuto possibile?
Grazie
gennaio 1st, 2010 at 22:21
Ciao,
la cosa è curiosa in quanto, oltre me, ci sono due utenti che hanno testimoniato l’effettivo inserimento della sidebar.
A questo punto i motivi potrebbero essere i più disparati, dal foglio di stile (o dal tema) “strano”, che la blocca o la nasconde chisà dove, a qualche plugin, o qualche precedente modifica che hai fatto al codice php di WP, sarebbe davvero arduo da dire, purtroppo.
giugno 18th, 2010 at 12:45
Grazie mille mi hai salvato!!! =) Funziona alla perfezione ed è spiegato davvero bene!
Ho ancora una domanda da farti per l’ultimo step che mi manca!
In pratica mi appare il div per la sidebar, riesco a stilarlo con la posizione corretta etc, ma come faccio ora a fare in modo che nella sidebar mi compaiano le pagine di secondo livello che mi interessano?!
Grazie in anticipo!
Chiara
giugno 19th, 2010 at 10:53
Di niente, figurati!
Cosa intendi per pagine di secondo livello?
In ogni caso puoi decidere COSA far apparire nelle sidebar dal pannello di amministrazione, sezione SIDEBAR.
ciao
giugno 24th, 2010 at 09:50
Ciao Flavio,
scusami sto ancora un pò smattando su questa cosa. Ho visto cosa intendi dal pannello sidebar, con il campo exclude e gli id delle pagine. Da li posso escludere le pagine che non voglio visualizzare.
Il mio problema è che devo far funzionare questa sidebar in modo che appaia su ciascuna pagina SOLO nel caso esistano delle pagine di secondo livello sotto di lei, e in quel caso deve mostrare le pagine di secondo livello.
(deve funzioanre così perchè deve poi essere usata dal cliente che non ha un’idea di mettere le mani nei file!).
Ho cercato un pò in giro e ho trovato la funzione wp_list_pages che ha anche un parametro “depth” ma non riesco a farlo funzionare =(
Purtroppo non posso mandarti un link perchè il lavoro che sto facendo è tutto protetto da password, ma magari hai un’idea da darmi! Spero di avere spiegato bene il problema, capisco sia un casino senza qualcosa da vedere!
Grazie mille ancora!
Chiara
giugno 24th, 2010 at 12:27
Ciao,
ho capito che dici, purtroppo però, non ne so abbastanza
Andrei a leggermi il manuale e a cercare questa funzione in google… in genere c’è SEMPRE qualcuno che prima di noi ha utilizzato queste funzioni, e ne ha parlato/spiegato sul web.
Flavio
luglio 19th, 2010 at 07:35
Grazie per la condivisione, è fantastico!
luglio 19th, 2010 at 09:14
Prego, figurati!