it-swarm-ja.com

取得条件から$条件をアルファベット順に並べ替えるのに役立ちます( 'wpsc_product_category'

私は与えられたカテゴリのために、wpsc_product_category用語のリストを取得しようとしていて、それらを彼らのページへのリンクと共にアルファベット順に(名前順に)表示させます。

これで正しいリストが得られますが、sort()は機能しません。用語はアルファベット順ではありません。任意の助けは大歓迎です!

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

get_termsのデフォルトのソート順nameによるものです。それはあなたにアルファベット順を与えるべきです。あなたのsortはその秩序を壊しているものです。そのsortを削除するだけで、あなたのコードは動作するはずです。

1
s_ha_dum

このコードは機能します。カテゴリ名(表示名)でソートし、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
    }
}
?>
1
Joe