web-dev-qa-db-fra.com

get_the_terms ne renvoie que le dernier terme

Dans mon type de message personnalisé (portfolio_pt), j'ai une structure de catégories hiérarchique semblable à celle-ci:

ParentCat
|-child
    |-someItem
ParentCat2
|-cild
...

Lorsque j'essaie d'obtenir la liste de tous les termes avec la fonction get_the_terms de "someItem", cette fonction ne renvoie que la dernière catégorie ("Child Cat" sans "Parent Cat"), par exemple:

global $post;
$terms = get_the_terms( $post->ID, 'portfolio_pt_category' );

J'essaie d'utiliser la fonction get_the_term_list mais l'effet est le même, il ne retourne que la dernière catégorie.

Merci pour l'aide!

1
Michał Kalkowski

Au lieu de get_the_terms, essayez d’utiliser get_terms et définissez l’argument hierarchal sur true. Veillez également à afficher vide pour ne pas masquer vos catégories vides.

Essayez quelque chose comme ça:

$args = array(
'hide_empty'    => false,
'hierarchical'    => true
); 
$terms = get_terms('portfolio_pt', $args);

foreach($terms as $term)
    echo $term->name;
2
campatsky