パンくずなどでよく使われるWordPressの関数the_category()ですが、
これで出力されるカテゴリの並び順は変えられません。
ということで、例によってfunctions.phpを使ってカスタマイズすることにしました。
functions.phpにcustom_the_categoryというfunctionを作成。
function custom_the_category() {
$cat = get_the_category();
$category = array();
$category2 = array();
if( count( $cat ) > 1 ) {
foreach( $cat as $c ){
//何らかの分岐を書く
if($c->cat_ID < 5){
$category[] = '<a href="' . get_category_link($c->term_id) . '" rel="category tag">' . $c->cat_name . '</a>';
}else{
$category2[] = '<a href="' . get_category_link($c->term_id) . '" rel="category tag">' . $c->cat_name . '</a>';
}
}
$categories = array_merge($category, $category2);
echo implode( ', ', $categories );
}
}
if文で分岐をしてみましたが、つまりはget_the_category()でまず配列をとってきて、
それを何らかしらで並び替えればいいということです。
私は面倒だったので分岐させて、
最後にarray_mergeさせました、キレイじゃないのですが(汗
ちなみにaタグを作る部分で結構時間をくったのですが、
wp-includes/category-template.phpの中にget_the_category_listという関数があって、
これをみたらすぐ作れました。
get_category_link()をこういう風に使うのもいいですね。


コメント