Vai alla home page

Flavio's blog

Di tutto di più, il blog del sito flapane.com

HOWTO : Tecnica definitiva per aggiungere una sidebar in Wordpress (widget ready)

27 aprile, 2009 by flapane

wordpress logo HOWTO : Tecnica definitiva per aggiungere una sidebar in Wordpress (widget ready)

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!

Copy the code below to your web site.
x 
  • Share/Bookmark



...Forse ti potrebbe interessare...

Ti è piaciuto l'articolo? Vota Ok oppure No. Grazie Mille!

Puoi votare l'articolo anche qui, gli articoli precedenti qui.

This entry was posted on lunedì, 27 aprile 2009 at 16:39 and is filed under webdesign, web 2.0 and seo. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

15 Responses

  1. FrancescoNo Gravatar

    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

  2. flapaneNo Gravatar

    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!

  3. GiovanniNo Gravatar

    Grazie per aver condiviso questo HOWTO, l’ho applicato con successo: http://www.quacos.com/2009/07/13/consulenza-su-wordpress-per-mk-arredamenti/

  4. flapaneNo Gravatar

    Ciao,
    grazie a te per averlo segnalato, felice che sia riuscito ad usarlo con successo!

  5. FabioNo Gravatar

    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

  6. flapaneNo Gravatar

    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.

  7. ChiaraNo Gravatar

    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

  8. flapaneNo Gravatar

    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

  9. ChiaraNo Gravatar

    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

  10. flapaneNo Gravatar

    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

  11. tattooNo Gravatar

    Grazie per la condivisione, è fantastico!

  12. flapaneNo Gravatar

    Prego, figurati!

Trackbacks

  1. diggita.it
  2. ZicZac.it, clicca qui e vota questo articolo!
  3. Consulenza su Wordpress per MK Arredamenti | WebLogiX

Leave a Comment