Help alphabetically sorting $terms from get terms(‘wpsc_product_category’

I’m trying to get a list of wpsc_product_category terms, for a given category, and have them display in alphabetical order (by name) with links to their pages.

This gives me the right list, but the sort() doesn’t work. The terms aren’t in alphabetical order. Any help would be greatly appreciated!

<?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
    }
}
?>

Related posts

2 comments

  1. This code works! Sorts by category name (visible name), produces a list of links of categories (that aren’t empty) that are children of 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
        }
    }
    ?>
    

Comments are closed.