it-swarm.com.de

Hilf mit, $ terms von get terms ('wpsc_product_category') alphabetisch zu sortieren.

Ich versuche, eine Liste der wpsc_product_category-Begriffe für eine bestimmte Kategorie zu erstellen und sie in alphabetischer Reihenfolge (nach Namen) mit Links zu ihren Seiten anzeigen zu lassen.

Das gibt mir die richtige Liste, aber die sort () funktioniert nicht. Die Begriffe sind nicht in alphabetischer Reihenfolge. Jede Hilfe wäre sehr dankbar!

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

Die Standardsortierreihenfolge für get_terms ist nach name. Das sollte dir eine alphabetische Reihenfolge geben. Ihre sort ist das, was diese Reihenfolge verletzt. Ihr Code sollte funktionieren, wenn Sie nur diese sort entfernen.

1
s_ha_dum

Dieser Code funktioniert! Sortiert nach Kategorienamen (sichtbarer Name), erstellt eine Liste von Links zu Kategorien (die nicht leer sind), die untergeordnete Elemente von category_id sind.

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