J'essaie d'afficher les termes grand enfant pour un terme de taxonomie personnalisé.
Le terme de taxonomie parent principal est product_range
, le terme de taxonomie enfant est Mechanical Trackballs
, chaque catégorie enfant comporte plusieurs termes grand-enfant, par exemple:
Gammes de produits> Trackballs Mécaniques> 16mm
Gammes de produits> Trackballs Mécaniques> 25mm
J'essaie d'énumérer tous les éléments de grand-enfant pour le terme taxonomie des enfants.
J'ai actuellement le code suivant:
$term_id = 49;
$taxonomy_name = 'product_range';
$term_children = get_term_children( $term_id, $taxonomy_name );
echo '<ul>';
foreach ( $term_children as $child ) {
$term = get_term_by( 'id', $child, $taxonomy_name );
echo '<li><a href="' . get_term_link( $child, $taxonomy_name ) . '">' . $term->name . '</a></li>';
}
echo '</ul>';
Cependant, comme vous pouvez le constater, je dois ajouter l'ID des termes de taxonomie enfant chaque fois que je souhaite afficher ses éléments enfants. Il ne s'agit pas d'une preuve future, car il s'agit d'un site client. Ils peuvent ajouter/supprimer des termes de taxonomie.
Comment puis-je afficher les termes de taxonomie de grand-enfant pour chaque terme sans avoir à déclarer l'ID du terme de taxonomie?
J'ai réussi à répondre à cette question moi-même en ajoutant get_queried_object()->term_id;
à la place de l'ID de taxonomie. Il affiche maintenant tous les termes de taxonomie des petits-enfants pour le terme de taxonomie actuel.
Voici mon code de travail mis à jour:
$term_id = get_queried_object()->term_id;
$taxonomy_name = 'product_range';
$term_children = get_term_children( $term_id, $taxonomy_name );
echo '<ul>';
foreach ( $term_children as $child ) {
$term = get_term_by( 'id', $child, $taxonomy_name );
echo '<li><a href="' . get_term_link( $child, $taxonomy_name ) . '">' . $term->name . '</a></li>';
}
echo '</ul>';