WordPress – Recuperare il nome delle categorie di un post e l’id della categoria padre

Quando manipoliamo il codice di WordPress, spesso ci è necessario recuperare il nome della categoria. Questo può capitare se siamo all’interno di un articolo oppure all’interno di una sottocategoria: in quest’ultimo caso, generalmente, ci preme soprattutto recuperare l’id della categoria padre (ed eventualmente il suo nome).

Iniziamo con ordine e vediamo come lavorare con le categorie. Ci sarà utile per comprendere le dinamiche dell’esempio finale.

Recuperare nome della categoria conoscendo il suo id

Se andate nel pannello di amministrazione, nel menu Articoli => Categorie troverete la lista delle categorie. Portatevi sopra alla categoria voluta con il mouse e troverete l’id della categoria (identificata dal get tag_ID).
Avendo a disposizione l’id della categoria, a questo punto possiamo recuperare tutti i riferimenti della categoria. Nel nostro caso, stamperemo il nome della categoria:

1
2
3
$category = &get_category($id);
$category_name=$category->slug;
echo $category_name;

Recuperare l’id di una categoria padre

Facciamo un passo in più. Se la categoria in cui siamo è, in realtà, una sottocategoria, possiamo entrare nella categoria e recuperare l’id della categoria padre con il seguente codice:


1
2
3
4
5
if( is_category() ) {
	$q_cat = get_query_var('cat');
	$cat = get_category( $q_cat );
	echo $cat->category_parent; // Print the ID
}

Recuperare i nomi delle categorie padri di una categoria

Adesso analizziamo un caso più complesso. Mettiamo di trovarci all’interno di un articolo. L’articolo si trova all’interno di una sottocategoria: quello che vogliamo fare è recuperare i riferimenti a tutte le categorie padre di quella sottocategoria.
Come punto di partenza, WordPress ci mette a disposizione l’id del post tramite un oggetto di classe sempre recuperabile, ovvero $post->ID.
Ecco il codice per recuperare i nomi delle categorie padri della categoria a cui l’articolo appartiene:

1
2
3
4
5
6
7
8
9
10
11
12
//array che contiene gli id di tutte le categorie a cui il post è associato
$category_array=wp_get_post_categories($post->ID);

//per ogni id categoria, stampo la sua categoria padre
foreach($category_array as $value){

    $attuale=get_category($value); //oggetto di riferimento alla categoria con id=$value
    $categoria_padre=$attuale->category_parent; //id categoria padre

    echo $categoria_padre;

}

Semplicemente, grazie alla funzione wp_get_post_categories() abbiamo estratto (e messo in un array) gli id di tutte le categorie dell’articolo. Per ognuna di queste, abbiamo recuperato i riferimenti alla categoria padre e abbiamo stampato il suo nome.
Naturalmente potremmo formattare il risultato a nostro piacimento, ma l’esempio è utile per capire come funziona.

Etichette
Etichette:,
Ultimi Commenti
  1. Simone
  2. Simone
  3. Simone
  4. Simone

Rispondi a Manuel Marangoni Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.