カスタムタクソノミー一覧を任意の順番にソートする方法
get_terms関数を使ってカスタムタクソノミーのリストを表示させることがしばしばあると思います。
そのリストを任意の順番で並べ替えたい(ソート)ときは、カスタムタクソノミー設定時の「説明」に番号を振っていくことで実現することができます。
図のように東京の説明に000、神奈川に001等を設定し、任意の順番でソートをかけることができるようにできます。ただし次のコードでは動きません。
$terms = get_terms($taxonomy,
array(
'parent' => 0,
'orderby' => 'description'
)
);
ソートが効くようにするために、WordPressフォーラムにあるように次のようなコードをfunctions.phpに追加する必要があります。
function taxonomy_orderby_description( $orderby, $args ) {
if ( $args['orderby'] == 'description' ) {
$orderby = 'tt.description';
}
return $orderby;
}
add_filter( 'get_terms_orderby', 'taxonomy_orderby_description', 10, 2 );
カスタムタクソノミーの並べ替えプラグインもありますが、プラグインはあまり多用したくないという方には良い方法だと思います。