Zelig Planet

Quando ti morde un lupo pazienza. Quel che secca è quando ti morde una pecora. (Arthur Bloch)

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

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.

Ci sono 25 commenti a questo articolo

  1. Gravatar Commento di Situation   (7 commenti)

    ciao zelig…..ho una curiosità: è possibile fare lo stesso lavoro con le categorie del sito, però escludendone alcune??? io ho già una lista a discesa per le categorie, però non volevo visualizzarle tutte….

    ti ringrazio :cheesygrin:

  2. Gravatar Commento di Zelig   (483 commenti)

    @Situation: dai un occhiata a questa FAQ per il codice che consente di escludere alcune categorie, dovrebbe fare al caso tuo: http://www.wordpress-it.it/wiki/Main/FaqGenerali#toc29

  3. Gravatar Commento di Situation   (7 commenti)

    sì, conosco i comandi sort e exclude (d’altronde avendo passato settimane a scervellarmi alla fine qualcosa ho assimilato :cheesygrin: )……però sembra che con il menù a tendina (lista a discesa, come la chiami tu) non funzionino….

    io ho usato un codice che ha creato un ragazzo e che mi ha mandato, te lo mostro subito….

    ” method=”get”>

    nella parentesi che segue la stringa “dropdown_cats” ho provato a inserire i comandi sort e exclude, però senza risultati.
    tu conosci altri parametri che possano essere validi per “dropdown_cats”, oppure sai dirmi se devo completamente cambiare codice per potere utilizzare sort e exclude? (e in tal caso, puoi aiutarmi in questo?)

    grazie mille :wink:

  4. Gravatar Commento di Situation   (7 commenti)

    oddio, il codice che avevo incollato è sparito……se hai bisogno te lo mando via email…

  5. Gravatar Commento di Zelig   (483 commenti)

    Putroppo, come hai potuto notare, scrivere del codice HTML nei commenti porta a risultati poco piacevoli, perchè in fase di visualizzazione viene interpretato come il resto del codice della pagina… :evil: Sto cercando una soluzione anche per questo, ma la vedo dura!
    Nel frattempo è meglio se mi mandi un’email, si. :smile:

  6. Gravatar Commento di Zelig   (483 commenti)

    Ok, ho la soluzione al quesito di Situation.
    Anzi, ancora meglio, ho un plugin! :winky:

  7. Gravatar Commento di silvana   (2 commenti)

    grazie mille mi è stato molto utile..però
    con IE mi si adatta perfettamente al box del mio tema, (Borderlinechaos)
    invece con firefox il form mi esce dal box
    come posso rimediare?

  8. Gravatar Commento di Zelig   (483 commenti)

    Silvana, puoi aggiungere un codice di stile per impostare una larghezza fissa in pixel per la lista. Il risultato è questo:


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

    Nota che ho aggiunto il codice style=”width:120px”, dove appunto viene impostata la larghezza, in questo caso a 120 pixel.
    Ovviamente le righe contenenti un testo più lungo verranno troncate, però almeno il template è salvo!

  9. Gravatar Commento di Silvana   (2 commenti)

    grazie mille per la celere risposta

    in effetti si tronca me-se ma non fa nulla
    ottimo

    :D

  10. Gravatar Commento di LUCA   (2 commenti)

    Ciao a tutti, ragazzi.
    Volevo sapere se esiste un plugin che mostra tutti gli articoli di una categoria con un menù a tendina.
    Vorrei che si visualizzasse solo quando si entra nella categoria con un menù a tendina discendente che mostra tutti gli articoli inseriti.
    Chiedo Troppo????????? :wink:
    Grazie

  11. Gravatar Commento di Zelig   (483 commenti)

    Non che io sappia, Luca.

  12. Gravatar Commento di LUCA   (2 commenti)

    E il random delle immagini nella sidebar con la possibilità di scegliere le immagini nelle pagine da randomizzare??

    Grazie Zelig.

  13. Gravatar Commento di Zelig   (483 commenti)

    Ti consiglio di cercare nel Wordpress Plugin Database.

  14. Gravatar Commento di Luca quaranta   (3 commenti)

    Salve a tutti, ho un piccolissimo problema, vi spiego.
    io vorrei che dopo l’onchange la pagina si riposizionasse nel punto in cui era, dove c’è la select e nn all’inizio, pome potrei fare?
    Grazie

  15. Gravatar Commento di Luca quaranta   (3 commenti)

    vorrei spiegarmi meglio,
    io con l’onchange non apro un altra pagina ma rimango nella setssa e popolo un altra select con i valori della precedente, la mia è una multi combobox che si trova a fondo pagina ed il mio problema sarebbe che ad ogni onchange la pagina si posiziona all’inizio.
    Come potrei fare??
    Grazie.

  16. Gravatar Commento di Zelig   (483 commenti)

    Inserire un “segnalibro” nella pagina in corrispondenza dei box e aggiungerlo ai link?
    (premetto che è solo un’ipotesi, io non ho mai provato)

  17. Gravatar Commento di Luca quaranta   (3 commenti)

    Ciao,
    grazie del consiglio ma purtroppo non funziona inquanto il mio nn è un a href ma un “onChange=”window.location=”,
    Come posso fare???
    Sto cercando ma nn tovo nulla di utile…chi mi puo aiutare??
    ciao

  18. Gravatar Commento di Zelig   (483 commenti)

    Io passo… :shifty:

  19. Gravatar Commento di Sergio   (1 commento)

    Ciao!
    Ho un paio di dubbi.
    Il codice che suggerisci deve sostituire interamente quello del theme in uso oppure si deve salvare qualcosa? Lo chiedo perchè altrimenti non capisco come venga fuori il titolo “archivio”.

    Poi, vorrei sapere se è possibile inserire un limite alla visualizzazione dei mesi, raggruppandoli per anno.

  20. Gravatar Commento di Zelig   (483 commenti)

    Sergio, il titolo “archivio” lo devi inserire manualmente, eventualmente usando la funzione apposita di WP: _e(’Archivio’)
    Per cambiare il numero di mesi visualizzati è possibile utilizzare i parametri della funzione wp_get_archives, ad esempio mettendo ‘type=monthly&limit=12′ verranno mostrati solo gli ultimi 12 mesi.

  21. Gravatar Commento di groucho   (1 commento)

    Buone 2008 (primaditutto).

    Sto curando un sito di una rivista e mi domandavo se era presentare la lista degli autori dei post come menu a discesa (dropdown).

    Come potrai immaginare sarebbe molto utile per razionalizzare lo spazio delle popolate sidebar. Naturalmente mi accontenterei anche di plugins esistemti di tua conoscenza. Il WP sotto il quale ho pubblicato il dito è 2.3.1.

    Grazie per il tuo prezioso lavoro!!


    ps.: la causa maggiore dei divorzi? Sicuramente il matrimonio!!!:P

  22. Gravatar Commento di Zelig   (483 commenti)

    Non saprei Groucho, mi dispiace. Al momento non ho tempo per studiarci sopra o per fare ricerche. Buon anno anche a te!

  23. Gravatar Commento di D4rkDev   (1 commento)

    Zelig, ho visto che hai wp 2.0.7 ma volevo chiederti cosa hai usato per fare la pagina http://zeligplanet.altervista.org/archivio

  24. Gravatar Commento di Zelig   (483 commenti)

    @D4rkDev: niente di particolare, nella pagina “archives.php” ho messo le funzioni standard di WordPress “wp_get_archives” e “wp_list_cats”, con indicati i parametri per far comparire anche il numero di articoli presenti e un pizzico di CSS per impaginarli a 2 colonne! :wink:

  25. Gravatar Commento di Paolo   (1 commento)

    Ciao,
    ho trovato utilissimo ia tua modifica; anche se io ho inserito il 1° codice e funziona benissimo!! Ora volevo fare la stessa cosa per le categorie ma non ci riesco mi dici quali sono i parametri da cambiare rispetto all’archivio mesi! :doh: :pray: :ciao:
    Grazie Paolo

Scrivi un commento

:) :D :( :o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :clap: :dance: :doh: :drool: :eh: :hand: :liar: :naughty: :pray: :shhh: :shifty: :sick: :silenced: :snooty: :think: :wall: :whistle: :love: :censored: :crazy: :food: :thumbup: :ciao: :cheers: :winky: :kiss: :rotfl: :ninja:

  

NOTE SUI COMMENTI:

  • Se non avete mai scritto nulla su questo blog, sappiate che il vostro primo commento dovrà essere approvato manualmente dall'amministratore e quindi non comparirà subito sul sito.
  • E' possibile usare dei tag HTML nel testo del commento, ma solamente quelli validi come XHTML "Strict" verranno accettati, quindi il risultato potrebbe anche essere un po' diverso dal previsto... nel dubbio, usate il testo semplice!
  • Questo blog supporta i "Gravatar": utilizzate lo stesso indirizzo e-mail con cui vi siete registrati e la vostra immagine comparirà automaticamente nel vostro commento. Se non avete ancora un gravatar, registratevi subito su www.gravatar.com!
  • La vostra e-mail, che comunque resterà sempre riservata, serve anche per il conteggio del totale dei vostri commenti e per inviarvi, se ne fate richiesta, gli avvisi di eventuali nuovi commenti.

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!