J'essaie d'obtenir une liste de termes wpsc_product_category, pour une catégorie donnée, et de les afficher par ordre alphabétique (par nom) avec des liens vers leurs pages.
Cela me donne la bonne liste, mais le sort () ne fonctionne pas. Les termes ne sont pas dans l'ordre alphabétique. Toute aide serait grandement appréciée!
<?php
//display sorted list of wpsc product categories
$category_id = 10;
$terms = get_terms('wpsc_product_category','hide_empty=0&parent='.$category_id);
sort($terms);
if ($terms) {
foreach($terms as $term) {
?>
<div>
<div class="caption transparent_class">
<a href="<?php get_term_link( $term->slug, 'wpsc_product_category'); ?>" class="wpsc_category_link"><?php echo $term->name; ?></a>
<?php if(get_option('wpsc_category_description')) :?>
<?php echo '<div class="wpsc_subcategory">'.$term->description.'</div>'; ?>
<?php endif;?>
</div>
</div>
<?php
}
}
?>
L'ordre de tri par défaut pour get_terms
est défini par name
. Cela devrait vous donner un ordre alphabétique. Votre sort
est ce qui brise cet ordre. Votre code devrait fonctionner si vous supprimez simplement cette sort
.
Ce code fonctionne! Trié par nom de catégorie (nom visible), produit une liste de liens de catégories (non vides) qui sont les enfants de category_id.
<?php
//display sorted list of wpsc product categories
$category_id = 10;
$terms = get_terms('wpsc_product_category','hide_empty=1&parent='.$category_id);
usort($terms, function($a, $b)
{
return strcmp($a->name, $b->name);
});
if ($terms) {
foreach($terms as $term) {
?>
<div>
<div class="caption transparent_class">
<a href="<?php echo get_term_link( $term->slug, 'wpsc_product_category'); ?>" class="wpsc_category_link"><?php echo $term->name; ?></a>
<?php if(get_option('wpsc_category_description')) :?>
<?php echo '<div class="wpsc_subcategory">'.$term->description.'</div>'; ?>
<?php endif;?>
</div>
</div>
<?php
}
}
?>