J'ai une fonction configurée qui affiche le nom du terme de taxonomie et le slug pour chaque terme de taxonomie products-category
présent. Cela fonctionne très bien, mais il suffit de les afficher par ordre alphabétique (peu importe qu’il s’agisse d’un terme de taxonomie parent/enfant):
Parent Category 2
Parent Category 1
Child Category 3
Parent Category 3
Child Category 2
Child Category 1
etc...
Alors que je suis après une structure plus comme ça:
—Parent Category 1
Child Category 1
Child Category 2
Child Category 3
—Parent Category 2
Child Category 1
Child Category 2
Child Category 3
—Parent Category 3
Child Category 1
Child Category 2
Child Category 3
Ainsi, les termes enfants de chaque terme de taxonomie sont placés dessous, de sorte que vous sachiez à quel parent ils appartiennent. Mon balisage est le suivant:
<?php
$args = array(
'hide_empty' => false
);
$terms = get_terms("products-category");
if ( !empty( $terms ) && !is_wp_error( $terms ) ){
foreach ( $terms as $term ) { ?>
<option value=".<?php echo $term->slug; ?>" data-hook="<?php echo $term->slug; ?>"><?php echo $term->name; ?></option>
<?php }
} ?>
Toute suggestion sur la façon d'atteindre cet objectif serait grandement appréciée!
Vous devriez avoir deux boucles foreach. Un pour obtenir les termes de taxonomie des parents et un second pour obtenir les termes de taxonomie des enfants.
Dans le second foreach, vous devez spécifier l'ID du terme de taxonomie parent, qui est $parent_term->term_id
de la première boucle foreach.
foreach( get_terms( 'products-category', array( 'hide_empty' => false, 'parent' => 0 ) ) as $parent_term ) {
// display top level term name
echo $parent_term->name . '<br>';
foreach( get_terms( 'products-category', array( 'hide_empty' => false, 'parent' => $parent_term->term_id ) ) as $child_term ) {
// display name of all childs of the parent term
echo $child_term->name . '<br>';
}
}
Vous pouvez simplement utiliser wp_list_categories
pour afficher votre liste. Il est extrêmement polyvalent et peut facilement être modifié pour répondre à vos besoins spécifiques. Bien que le nom suggère que ce n'est que pour les besoins de la taxonomie intégrée category
, ce n'est pas le cas. Il peut être utilisé pour n'importe quelle taxonomie
Vous devrez travailler à travers des exemples, etc. et modifier au besoin. Voici un exemple simple que vous pouvez utiliser pour afficher votre liste
wp_list_categories('taxonomy=products-category');