Gracias a Ivaylo por este código, que se basó en la respuesta de Bainternet.  
La primera función a continuación, get_term_top_most_parentacepta un término y una taxonomía y devuelve el padre de nivel superior del término (o el término en sí mismo, si no tiene padres); la segunda función ( get_top_parents) funciona en el bucle y, dada una taxonomía, devuelve una lista HTML de los padres de nivel superior de los términos de una publicación.
// Determine the top-most parent of a term
function get_term_top_most_parent( $term, $taxonomy ) {
    // Start from the current term
    $parent  = get_term( $term, $taxonomy );
    // Climb up the hierarchy until we reach a term with parent = '0'
    while ( $parent->parent != '0' ) {
        $term_id = $parent->parent;
        $parent  = get_term( $term_id, $taxonomy);
    }
    return $parent;
}
Una vez que tenga la función anterior, puede recorrer los resultados devueltos wp_get_object_termsy mostrar el padre principal de cada término:
function get_top_parents( $taxonomy ) {
    // get terms for current post
    $terms = wp_get_object_terms( get_the_ID(), $taxonomy );
    $top_parent_terms = array();
    foreach ( $terms as $term ) {
        //get top level parent
        $top_parent = get_term_top_most_parent( $term, $taxonomy );
        //check if you have it in your array to only add it once
        if ( !in_array( $top_parent, $top_parent_terms ) ) {
            $top_parent_terms[] = $top_parent;
        }
    }
    // build output (the HTML is up to you)
    $output = '<ul>';
    foreach ( $top_parent_terms as $term ) {
          //Add every term
          $output .= '<li><a href="'. get_term_link( $term ) . '">' . $term->name . '</a></li>';
    }
    $output .= '</ul>';
    return $output;
}
                 
                
                
                 
get_term_children( $term, $taxonomy )( documentación ) incorporada de WordPress . Si usted quiere conseguir todos los hijos de los padres de nivel superior de un término dado, se puede pasar el resultado anterior en ella, así:get_term_children( get_term_top_most_parent( $term, $taxonomy ), $taxonomy ).get_ancestors, que era nueva y no estaba bien documentada cuando se escribió la respuesta. Publicaré una nueva respuesta cuando haya tenido tiempo de probar.Desde 3.1.0,
get_ancestors()está disponible. Devuelve una serie de antepasados de menor a mayor en la jerarquía.fuente
Aquí hay una función simple que le dará el término principal más alto de cualquier término dado:
Una vez que tenga esta función, puede recorrer los resultados devueltos por
wp_get_object_terms:fuente
fuente
Tuve el mismo problema y lo resolví fácilmente. Mira esto:
Definir
$taxonomy. Puede ser la babosa de la taxonomía que desea obtener los datos. Después de hacer esto, simplemente puede hacer esto:Ahora tienes algo como esto:
Y puede usar
$parentObjpara obtener babosa, nombre, identificación, lo que sea. Simplemente usando$parentObj->slugo$parentObj->namecomo ejemplo.fuente
La manera más fácil:
fuente
Quizás esto ayude:
get_ancestors( $object_id, $object_type );codex.wordpress.org
fuente