Creare una o più sidebar con WordPress (uso del file functions.php)
Ok, riepiloghiamo. Abbiamo visto:
- Creare un template base per WordPress: struttura
- Creare un template per WordPress: header.php è fondamentale
- Template WordPress: tutti i files che compongono un tema e il “loop di WordPress”
Quest’oggi invece analizzeremo un file che principalmente viene usato per tutte quelle funzioni, proprie del nostro tema, ma che vanno al di là di un plugin.
L’uso primario che se ne può fare è quello di creare una sidebar. In molti template vedrete richiamare il file sidebar.php come fosse la header.php o il footer.php in questo modo: <? get_sidebar(); ?> Ovviamente dovrà esistere un file sidebar.php dentro al quale avrete il seguente codice: <?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar(1) ) : else : ?>
<? endif; ?>
Che richiamerà la sidebar numero 1. Ma potete decidere anche di non usare il file sidebar.php e di inserire direttamente il codice di richiamo ovunque vi serva nel vostro template. Potete infatti crearne anche più di una, da usare a piacimento nel vostro template, nel seguente modo:
Aprite il file functions.php e scriveteci:
<? if ( function_exists('register_sidebar') )
register_sidebar(array('name'=>'I piu letti'));
register_sidebar(array('name'=>'Sidebar home'));
register_sidebar(array('name'=>'Sidebar articolo'));
register_sidebar(array('name'=>'Prefooter'));
register_sidebar(array('name'=>'Navigazione interna')); ?>
Questa ad esempio sono tutte le sidebar che ho usato su Italianwebdesign. Nel vostro menu di WordPress Aspetto > Widget vi ritroverete esattamente le sidebar create con il loro nome e potete metterci tutti i widget che volete e potete così richiamarle singolarmente ovunque vogliate nel vostro template, purchè vi sostituiate il nome o l’id giusto.
Ricordate sempre, nel formattare graficamente con i css una sidebar, che WordPress crea delle liste non ordinate, che andranno a contenere in modo annidato i nostri widget. Pertanto sarebbe sempre opportuno mettere anche, prima del richiamo della funzione della sidebar, anche i tag di apertura e chiusura di una lista come segue:
<ul>
<?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar(1) ) : else : ?>
<? endif; ?>
</ul>
In modo da avere il codice html già validato e corretto.
Un esempio html del codice generato in questo modo (che è poi l’unico possibile) è:
<ul>
<!-- widget di testo !-->
<li id="text-4"><p>Testo testo testo</p></li>
<!-- widget con gli ultimi commenti !-->
<li id="recent-comments-1">
<!-- c'è sempre un h2 come titolo del widget a meno che non sia espressamente eliminato come nel widget di testo, se si omette di scrivere nell'apposito spazio !-->
<h2>Commenti recenti</h2>
<ul id="recentcomments"><li><a rel="external nofollow" href="http://www.emawebdesign.com/2010/05/16/i-migliori-post-della-settimana-67/">I migliori post della settimana #67 | EmaWebDesign :: Web Programming / Web Design / SEO</a> su <a href="http://www.italianwebdesign.it/template-wordpress-tutti-i-files-che-compongono-un-tema-e-il-loop-di-wordpress/comment-page-1/#comment-22898">Template WordPress: tutti i files che compongono un tema e il “loop di WordPress”</a></li></ul>
</li>
</ul>
Alcuni esempi particolari in cui ho usato dei widget e sidebar dove mi occorreva:
In questo sito ad esempio ho usato ben 4 sidebar per poter posizionare dove volevo alcuni contenuti e renderli gestibili facilmente dal cliente tramite widget (senza che andasse a smanettare sul template): il testo di presentazione sulla sinistra, il video sulla destra, il menu di navigazione di lingua in alto, e un widget nelle pagine interne con le sottopagine (plugin e widget apposito) e le ultime news.
Spero di essere stata chiara, se ci sono dubbi dite pure!


















Add to Google

4 Commenti
Quando scoprii a mio tempo questa caratteristica di WordPress mi si aprì un mondo.
Laura complienti per la stesura degli articoli!
Soprattutto per “come” prendi l’argomento!
Brava!
grazie Andrea!! cerco di essere spontanea nello spiegare, cercando di immedesimarmi in chi ascolta per non risultare troppo complessa da capire…
Grazie, continuo a seguirti con interesse, al prossimo articolo ciao
Ciao Laura,
complimenti per il sito e gli articoli che inserisci.
Sto cercando di creare alcune sidebar diverse da poterle inserire in alcune pagine.
Il mio tema però ha 2 sidebar, ossia una dx ed una sx.
Quindi oltre a sidebar.php ho i seguenti files:
sidebar-init.php
sidebar-single-left.php
sidebar-single-right.php
La parte di codice:
in quale file la inserisco?
Ho provato ad inserire i codici da te indicati in sidebar.php ma come ho inserito la parte di codice in functions.php ho avuto problemi (errore on line 92), e ho dovuto ripristinare tramite ftp, riportando quindi i files in originale.
ciao, grazie
Rosa