Era qualche tempo che volevo anch’io utilizzare il metodo “alla Technorati” per visualizzare le tag piu’ utilizzate nel mio blog e questo plugin e’ proprio quello che stavo cercando.
Pero’ avevo un problema neanche’ da poco, ovvero questo, come altri plugin simili, ottengono la lista delle tag da un custom_field da inserire per ogni post. E’ ovvio che avendo gia’ diversi post sarebbe stato uno sbattimento aggiungere a tutti dei custom_field personalizzati.
L’idea, quindi, e’ stata quella di sfruttare le categorie esistenti al posto del custom_field, cosi’ con una modifica minima al codice del plugin mi sono risparmiato una bella faticata.
L’hack sta semplicemente nel modificare la “SELECT” sql che recupera le tag:
Nel file sorgente del plugin (technoratitagging.php) andate alla linea #99:
$tagData = implode(“,”, $wpdb->get_col(“SELECT `meta_value` FROM $wpdb->posts LEFT JOIN $wpdb->postmeta ON $wpdb->posts.ID=$wpdb->postmeta.post_id WHERE (`meta_key`=’ttaglist’ OR `meta_key`=’technorati’) AND `post_status`=’publish’$where ORDER BY `post_date` DESC$limit”));
la variabile $tagData e’ quella che conterra’ tutte le tag, che in questo modo vengono recuperate dalla tabella dei custom_field (wp_postmeta).
Se ora sostituite l’intera riga con questa:$tagData = implode(“,”, $wpdb->get_col(“SELECT `cat_name` FROM $wpdb->post2cat LEFT JOIN $wpdb->categories ON $wpdb->post2cat.category_id=$wpdb->categories.cat_ID ORDER BY `cat_name` DESC$limit”));
otterrete che la variabile $tagData verra’ riempita con tutte le categorie di ogni singolo post.
Ora settate la variabile $technoTag_tagbitlink che trovate all’inizio del file, tra la configurazione, in modo da riflettere il permalink settato per le vostre categorie (io ho dovuto cambiarla con “/category/”).
Ultima cosa, dato che non avete piu’ alcuna tag aggiuntiva da visualizzare, le due variabili $technoTag_prefix e $technoTag_suffix, sono inutili e vanno eliminate (servivano per visualizzare le tag dei custom_field per ogni post)
E questo e’ tutto, grazie a Ben per l’ottimo lavoro.
Nota bene: la SELECT cosi’ com’e’ non tiene conto se un post e’ pubblicato o meno, quindi prende tag anche dai draft e dai post privati. Inoltre in questo modo non avrete piu’ la funzionalita’ base dell’aggiunta di tag nel custom_field.
Note sull’utilizzo dell’hack: Utilizzate questo hack a vostro rischio e pericolo, non e’ testato, sono le 02.28, ho sonno…insomma affari vostri. 🙂