WordPressのthe_category()で表示される並び順を変える

パンくずなどでよく使われる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()をこういう風に使うのもいいですね。

スポンサーリンク
スポンサーリンク