Funzioni per ottenere la categoria degli articoli in WordPress
Vorrei riportare integralmente un articolo molto utile a chi come me sviluppa siti web con WordPress. L’articolo originale è stato preso da questo Blog molto interessante. Ringrazio l’autore per aver messo a disposizione della rete la sua esperienza e spero non se ne abbia a male se pubblico il suo articolo sul mio Blog.
Chi è solito creare template per WordPress o chi si è trovato a dover
modificare il proprio avrà notato che le funzioni che abbiamo a disposizione per
lavorare con le categorie di WordPress non sono poi molte. Spesso bisogna,
infatti, andarsi a spulciare documentazione e sorgenti, per trovare il modo di
fare quello che vogliamo.Per questo voglio condividere con voi alcune funzioni che ho creato ad hoc e
che mi sono tornate utili in vari template. Vediamole insieme.
Nota: ovviamente il codice delle funzioni che seguono andrà inserito nel file
functions.phpdel vostro template.Primo problema: mi trovo dentro ad un Loop e vorrei
sapere a che categoria appartiene il post corrente. Fin qui è semplice, possiamo
usare la seguente funzione:function get_cat_inside_loop(){
$category = get_the_category();
return $category[0]->term_id;
}Restituirà l’ID della prima categoria a cui il post appartiene.
Bene, e se invece fossi fuori dal Loop, ad esempio nella sidebar? Potrei
usare la stessa funzione di prima, ma ho riscontrato spesso alcuni problemi (ad
esempio sbagliava a restituirmi l’ID). Ecco allora cosa usare:function get_cat_outside_loop(){
global $wp_query;
$wp_query->is_category;
$objCat = $wp_query->get_queried_object();
return $objCat->term_id;
}Chiaramente potete chiamare queste funzioni come vi pare, io ho solo dato un
nome indicativo.Secondo problema: analogamente, potrebbe servirci l’ID della
categoria padre. Nel caso fossimo dentro al Loop, c’è poco da fare, dobbiamo
andare a prendercelo direttamente dal database:function get_parent_cat($cat){
global $wpdb;
$sql = “SELECT parent
FROM $wpdb->term_taxonomy WHERE term_id = ‘$cat’”;
return $wpdb->get_var($sql);
}La variabile
$catche viene passata alla funzione, è l’ID della
categoria di cui vogliamo ottenere il padre. Possiamo passarle un intero, oppure
recuperare la categoria corrente, con la funzione
get_cat_inside_loop().Se invece ci troviamo fuori dal Loop, la funzione che ci serve è molto simile
a quella per la categoria:function get_parent_cat_outside_loop(){
global $wp_query;
$wp_query->is_category;
$objCat = $wp_query->get_queried_object();
return $objCat->parent;
}Funzioni come queste che vi ho presentato posso servire in vari casi, per
personalizzare i comportamenti di determinati oggetti all’interno del template.
Ad esempio, se vogliamo che un determinato testo compaia nella sidebar solamente
quando ci troviamo all’interno di una determinata categoria (con ID = 4,
nell’esempio seguente) o in una sua sottocategoria, potremo scrivere:if(get_cat_outside_loop() == 4 || get_parent_cat_outside_loop() == 4){
echo
“Testo da mostrare”;
}
Vorrei riportare integralmente un articolo molto utile a chi come me sviluppa siti web con WordPress. L’articolo originale è stato preso da questo 









Ciao. Non ne ho a male, anzi mi fa piacere che i miei articoli siano apprezzati e diffusi
L’importante è che, come hai già fatto, venga riportata la fonte.
Ciao!
Grazie per aver lasciato il commento, come te credo che la diffusione della conoscenza possa solo che far crescere tutti. A presto, Daniele