WordPress 2.3 e tag cloud per le categorie
2 Ottobre 2007
Ritorno sull’argomento tag cloud per le categorie di WordPress: oggi ho provato ad installare in locale la versione 2.3 di WordPress e, come previsto, lo script non è più compatibile.
La spiegazione è semplice: la tabella wp_categories è stata rimossa e i dati necessari per lo script sono stati distribuiti in due tabelle distinte:
- nella tabella wp_terms troviamo i term_id e i nomi associati a questi term_id
- nella tabella wp_term_taxonomy riusciamo ad associare una tipologia ai vari term_id (campo taxonomy) e recuperare il numero di post collegati (campo count)
A questo punto, per recuperare tutti i valori che prima erano disponibili in un’unica tabella è necessario selezionare i termini di tipo category e fare un join delle due tabelle.
Ecco il nuovo codice (file in formato txt), compatibile SOLO con WordPress 2.3
< ?php
// Recupero le informazioni sulle categorie dal database
$qrystr = "SELECT $wpdb->term_taxonomy.term_id AS id_categoria, count, name, taxonomy FROM $wpdb->term_taxonomy LEFT JOIN $wpdb->terms ON $wpdb->term_taxonomy.term_id=$wpdb->terms.term_id WHERE taxonomy='category' ORDER BY name";
$cats = $wpdb->get_results($qrystr);
//Recupero il numero massimo di post per una singola categoria
$max_value = 0;
foreach ($cats as $cat)
{
if ($max_value < $cat->count) {
$max_value = $cat->count;
}
}
//Considero 15 scalini , a partire da 60% a 200%
//Per modificare questi due valori basta modificare i valori delle variabili
$percentuale_minima = 100;
$percentuale_massima = 230;
$percentuale_scalino = 10;
$numero_scalini = ($percentuale_massima-$percentuale_minima)/$percentuale_scalino;
$post_per_scalino = $max_value / $numero_scalini;
// Stampo tutte le categoria all'interno di un div (id=cloud)
// assegno una classe alla categoria (o alle categorie) più grandi
echo '';
foreach ($cats as $cat)
{
if ($cat->count>0) {
$catname = $cat->name;
$catlink = get_category_link($cat->id_categoria);
$postcnt = $cat->count;
$percentuale_fontsize = $percentuale_minima+(Round($postcnt/$post_per_scalino)*$percentuale_scalino);
echo '';
}
else {
echo ' style="font-size: ', $percentuale_fontsize,'%" title="',$postcnt,' post">';
}
echo $catname,"\r";
}
}
echo "";
?>
10 commenti/trackback a “WordPress 2.3 e tag cloud per le categorie”
Trackback e pingback
- ...time is what you make of it...
Sono passato a Wordpress 2.3: ma che tag e tag!... Aggiornamento completato… fortunatamente sembra funzionare tutto correttamente. Ho dovuto modificare…
Non è possibile inserire nuovi commenti. I commenti vengono disattivati automaticamente dopo 60 giorni.
2 Ottobre 2007 alle 09:01
Scusa, ma non è più semplice convertire le categorie in tag e usare la funzione wp_tag_cloud già presente in wordpress?
2 Ottobre 2007 alle 09:45
Beh, non è detto che i tag coincidano con le categorie e mi pare di capire che la funzione wp_tag_cloud (che non avevo ancora visto) non permetta di filtrare il campo taxonomy: nel mio caso le categorie sono molte meno dei tag, usando anche i tag farei un tag world più che una tag cloud 😛
Altra cosa: con questa tag cloud artigianale posso evidenziare il numero di post come tooltip, distinguere la categoria più utilizzata e, non da ultimo, gestire il codice generato come preferisco (ma non ho ancora guardato quello generato dalla funzione).
2 Ottobre 2007 alle 10:41
L’idea dovrebbe essere: lascia perdere le categorie e usa i tag 😉
Già che ci sono, ne approfitto (puoi anche mandarmi a quel paese):
Ajax Comment Preview funziona con wordpress 2.3? (io non riesco a farla funzionare, ma non ho capito se è un problema del tema o di altri plugin).
Ultimi commenti nella sidebar: immagino usi Get Recent Comments. Come fai a mettere la virgola tra un autore e l’altro, togliendola in fondo?
2 Ottobre 2007 alle 10:48
Ajax Comment Preview
Da una prova veloce mi sembrava funzionare, però sto utilizzando una vecchia versione (1.1) modificata e tradotta brutalmente dal sottoscritto.
Se vuoi posso provare a passartela via mail 😉
Per il discorso ultimi commenti uso Brian’s Latest Comments, versione 1.5.10, non ricordo di aver fatto modifiche particolari. Anche in questo caso posso mandarti il file via e-mail.
Sul discorso TAG: pensa che passando alla 2.3 (non a breve) ho una mezza intenzione di restare con SimpleTags e non usare i tag integrati 😛
2 Ottobre 2007 alle 12:57
Ajax Comment Preview: mi sa che il problema sta nel mio template / altri plugin 🙁 Farò delle prove in locale
Proverò a usare Brian’s Latest Comments: nella tua sidebar che codice c’è? (mi piace come sono raccolti i commenti per post)
2 Ottobre 2007 alle 13:06
Interessante!
Apro un piccolo OT… quale plugin usi per rendere il codice colorato in base ai linguaggi?
Ciao! 🙂
2 Ottobre 2007 alle 13:13
P.S.: Ehm… scusa l’ignoranza ma come dovrei fare per utilizzare questo codice? Dove lo devo mettere?
2 Ottobre 2007 alle 13:33
@Ivo Silvestro
< ?php blc_latest_comments('5','5','false'); ?>
Tutto il codice è generato in questo modo: nel codice del plugin puoi modificare il colore dei commenti più vecchi e più recenti 😉
@lorenzone 92
WP-Syntax
http://wordpress.org/extend/plugins/wp-syntax/
Il codice devi inserirlo nella sidebar del tuo tema 😉
2 Ottobre 2007 alle 13:39
@pseudotecnico: l’ho fatto ma viene visualizzato il codice così com’è…