web-dev-qa-db-fra.com

get_terms problème: articles connexes


J'essaie d'utiliser get_the_term_list pour saisir le nom de la taxonomie actuelle de la page, puis de l'utiliser avec get_terms et une méthode foreach pour afficher le résultat de tous les "éléments" de la même taxonomie, mais je n'ai eu qu'un résultat vide. (par exemple, ceci consiste à avoir les articles liés de la page).

Savez-vous pourquoi cela ne fonctionne pas? L'écho sur get_the_term_list fonctionne bien, mais dans le paramètre get_terms, le résultat du "li" est vide.

$my_tax = get_the_term_list( $post->ID, 'type');
//echo $my_tax;?> output works fine

$terms = get_terms($my_tax);
foreach ($terms as $term) {
echo "<li>".$term->name."</li>"; // empty
}

Pourriez-vous m'aider?

1
Paul_p

get_the_term_list() récupère les termes attachés à l'article qui sont dans la taxonomie "types".

get_terms() est conçu pour extraire tous les termes d'une taxonomie.

Vous essayez d'utiliser get_terms() pour un terme spécifique dans une taxonomie, pas une taxonomie elle-même.

Vous devez faire: $terms = get_terms('type');

1
Pippin

get_post_taxonomies( $post->ID ) vous permet de récupérer dynamiquement les noms des taxonomies attachées à une publication.

Vous pouvez donc récupérer TOUS les termes appartenant aux taxonomies de la publication actuelle:

$all_terms = get_terms( get_post_taxonomies( $post->ID ) );

OU uniquement les termes affectés au poste actuel:

$object_terms = wp_get_object_terms( $post->ID, get_post_taxonomies( $post->ID ) );

Je vais aller un peu plus loin et implémenter get_the_term_list () pour chaque taxonomie:

foreach( get_post_taxonomies( $post->ID ) as $taxonomy ) {
    $taxonomy_name = get_taxonomy( $taxonomy )->labels->name;
    echo get_the_term_list( $post->ID, $taxonomy, '<h3>' . $taxonomy_name . '</h3><ul><li>', '</li><li>', '</li></ul>' );
}
1
Rachel Carden