J'ai le code suivant pour lister les termes de taxonomie dans une liste déroulante. Cela fonctionne très bien, sauf que la liste dans le menu déroulant n'est pas dans l'ordre alphabétique. Comment modifier le code pour les lister alphabétiquement?
<form action="<?php bloginfo('url'); ?>/" method="get">
<?php
$term_id = 279;
$taxonomy_name = 'categories';
$termchildren = get_term_children( $term_id, $taxonomy_name );
echo '<select name="' . $taxonomy_name . '" onchange="this.form.submit()">';
echo '<option selected>Branding...</option>';
foreach ( $termchildren as $child ) {
$term = get_term_by( 'id', $child, $taxonomy_name );
$link = get_term_link( $child, $taxonomy_name );
echo '<option value="'.$term->slug.'"><a href="' .esc_url( $link ) . '">' . $term->name . '</a></option>';
}
echo '</select>';
?>
<noscript><div><input type="submit" value="View" /></div></noscript>
</form>
J'ai trouvé une réponse à cette question à l'adresse https://wordpress.stackexchange.com/a/105079/40536
J'ai modifié mon code comme suit:
<form action="<?php bloginfo('url'); ?>/" method="get">
<?php
$term_id = 279;
$taxonomy_name = 'categories';
$termchildren = get_term_children( $term_id, $taxonomy_name );
$children = array();
foreach ($termchildren as $child) {
$term = get_term_by( 'id', $child, $taxonomy_name );
$children[$term->name] = $term;
}
ksort($children);
echo '<select name="' . $taxonomy_name . '" onchange="this.form.submit()">';
echo '<option selected>Branding...</option>';
foreach ( $children as $child ) {
$term = get_term_by( 'id', $child->term_id, $taxonomy_name );
echo '<option value="'. $term->slug .'">' . $term->name . '</a></option>';
}
echo '</select>';
?>
<noscript><div><input type="submit" value="View" /></div></noscript>
</form>