Very short snippet: come recuperare la categoria padre in WordPress

In WordPress le categorie possono essere organizate in una struttura “padre” “figlio”. Questo significa che un singolo post può appartenere a più categorie. Può tornare utile in alcuni casi determinare, a prescindere dai “figli”, quale sia la categoria padre di un post:

1
2
3
4
5
6
7
8
9
10
11
/**
 * Ritorna la categoria padre di un post
 *
 * @return
 * @param object $post_id
 */

function get_parent_category( $post_id ) {
    $cats = wp_get_object_terms($post_id, 'category', array('fields' => 'all') );
    foreach( $cats as $key => $cat ) if( $cat->parent == 0) return $cat;
    return null;
}

2 commenti a: “Very short snippet: come recuperare la categoria padre in WordPress”

  1. 21 mar, 2009 luca:

    grazie per il tip e complimenti per il blog pieno di contenuti interessanti. volevo fare una domanda a proposito di categorie padre e figlio: è possibile creare più categorie padre e assegnare a ciascuna di esse categorie figlio con lo stesso nome?

  2. 22 mar, 2009 Giovambattista Fazioli:

    @luca:

    è possibile creare più categorie padre e assegnare a ciascuna di esse categorie figlio con lo stesso nome?

    Attualmente WordPress questo non lo permette. Nonostante sia possibile decidere il padre, e quindi a livello logico evitare di confondere due categorie identiche (a livello di nome), WordPress impedisce l’uso del medesimo nome per una categoria, anche se questa appartiene a padri diversi.
    Tuttavia è possibile aggirare parzialmente l’ostacolo con un piccolo artefizio: si creano due padri “Padre 1″ e “Padre 2″. Si crea un primo “Figlio 1″ e gli si associa come padre “Padre 1″. Si crea poi “Figlio A” e gli si associa “Padre 2″. Fatto questo si va a modificare il nome di “Figlio A” in “Figlio 1″, anche se lo “slug” (abbreviazione) rimane “figlio-a”. A questo punto abbiamo:

    Padre 1 ->Figlio 1
    Padre 2 -> Figlio 1

Lascia un commento

TAG XHTML PERMESSI: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> INSERIMENTO CODICE:
<pre></pre> // blocco generico
					<code></code> // blocco generico
					[cc_actionscript][/cc_actionscript] // Actionscript
					[cc_actionscript3][/cc_actionscript3] // Actionscript 3
					[cc_css][/cc_css] // CSS Style Sheet
					[cc_html][/cc_html] // HTML
					[cc_js][/cc_js] // Javascript
					[cc_objc][/cc_objc] // Objective-C
					[cc_php][/cc_objc] // PHP
					[cc_sql][/cc_sql] // SQL


Stop SOPA