Zelig Planet

Non annunciate mai l'importanza di una dichiarazione prima di averla fatta. (Murphy)

Home Page - Blog - Informazioni

Archivio

cerca un articolo inserendo una o più parole qui sotto:

oppure seleziona un mese dall'elenco:

oppure scegli una categoria di articoli:

oppure visualizza la pagina dell'archivio

Misc

Feed RSS 0.92 Feed RSS 2.0 RSS 2.0 comm. Feed Atom 0.3 XHTML valido CSS valido Sottoscrivi con Bloglines

Powered by
WordPress 2.0.7

Archivio blog - giorno 16 Gennaio 2006

Wordpress: archivio mesi precedenti come lista a discesa

Lunedì 16 Gennaio 2006 by Zelig

Un altro noioso articolo tecnico, a beneficio di chi come me usa Wordpress per il proprio blog… :wink:

Era da un po’ di tempo che volevo modificare i link all’archivio dei mesi precedenti del blog, nella colonna laterale. Visto che il blog invecchia, i mesi aumentano e l’elenco comincia a diventare un po’ troppo ingombrante, pensavo infatti di sostituirlo con una lista a discesa dalla quale selezionare il mese desiderato.

La porzione di codice del file sidebar.php che visualizza l’archivio in modo “standard” (nel template di default, per capirci) come elenco puntato di link è questo:

<li>
<h2>Archivio</h2>
<ul>
<?php wp_get_archives('type=monthly'); ?>
</ul>
</li>

Cercando un po’ in giro ho scoperto che per implementare una lista a discesa avrei dovuto usare invece questo codice (utilizzato anche in molti dei template che si trovano in rete):

<form name="archiveform" action="">
<select name="archive_chrono" onchange="window.location
=(document.forms.archiveform.archive_chrono
[document.forms.archiveform.archive_chrono.selectedIndex].value);">
<option value=''>Scegli un mese</option>
<?php get_archives('monthly','','option'); ?>
</select>
</form>

Il codice in effetti funziona, ma ha un problema, che per molti può essere insignificante, ma per me è invece molto importante: non è valido come XHTML Strict!

Allora ci ho studiato un po’ sopra e alla fine sono riuscito a renderlo valido apportando alcune modifiche: prima di tutto occorre sostituire nel tag “form” l’opzione “name” con l’equivalente “id” e poi bisogna includere il tag “select” in un paragrafo. Già che c’ero, ho anche sostituito la funzione get_archives (che si usava nelle prime versioni di WP) con la più corretta wp_get_archives, adattando la sintassi dei parametri. Il codice risultante è il seguente:

<form id="archiveform" action="">
<p>
<select name="archive_chrono" onchange="window.location=(document.forms.archiveform.archive_chrono
[document.forms.archiveform.archive_chrono.selectedIndex].value);">
<option value=''>Scegli un mese</option>
<?php wp_get_archives('type=monthly&format=option'); ?>
</select>
</p>
</form>

Il risultato lo potete vedere in funzione nella colonna laterale del mio blog, qui a sinistra.
Per dovere di cronaca, preciso che il tutto è stato realizzato e testato su WordPress 1.5.2.


Copyright © 1997-2009 Corrado "Zelig". Tutti i diritti riservati (vedi note legali)

NB: state visualizzando questo sito nella versione ottimizzata per dispositivi portatili (cellulari, palmari, ecc.) oppure con un browser "datato" che non consente di visualizzare correttamente i fogli di stile (CSS). I contenuti del sito sono comunque gli stessi e le differenze riguardano solamente l'aspetto estetico, che sarebbe molto più "piacevole" se visualizzato con un browser più recente!