web-dev-qa-db-fra.com

Comment commander une liste de termes de taxonomie par ordre alphabétique?

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>
1
Troy Templeman

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>
4
Troy Templeman