2011.6.11
以前、「WordPressで指定カテゴリの記事数を表示する方法|1bit::memo」という記事を紹介しましたが、この方法だと記事数以外の全てが手動なのでちょっと面倒でした。
その後いろいろ調べてみて、上記の記事より少しだけ汎用的に使えそうなやり方ができたのでメモしておきます。
カテゴリ一覧をオブジェクトで取得する方法がないため、「WordPressで全てのカテゴリー構造を取得する方法 | とりさんのソフト屋さん」のコードを使用します。(元サイトのコードとfunction名を変えていますので注意。)
/////////////////////////////////////
//カテゴリ情報の一覧を取得する
/////////////////////////////////////
function get_the_category_all() {
if ( ! $cat_all = wp_cache_get( 'all_category_all', 'category' ) ) {
$cat_all = get_terms( 'category', 'fields=all&get=all&orderby=id' );
wp_cache_add( 'all_category_all', $cat_all, 'category' );
}
return $cat_all;
}
以下のコードをコピペします。修正すべき箇所は以下にて。
並び替えたい順番を配列で記述するコード中の、「array(‘red’,’orange’,’yellow’,’green’);」部分を各自の環境に合わせて記述します。必ずスラッグ名で記載すること、並び替えたい順番で記載することに注意してください。
ここに記述したカテゴリだけを表示しますので、すべてのカテゴリを表示したい場合は、全部書いてください。
slug == $cat_order[$i] ) {
echo '- ';
echo '' . $term->name . '(' . $term->count . ')';
echo '
';
}
}
}
?>
functions.phpのコードはさまざまなカテゴリ情報を取得していますので、カテゴリに関する様々な情報を取り出せます。
上記サンプルで例えると、$term->★の★部分を変更することで、いろいろな情報を取り出すことができます。
term_id | カテゴリID |
---|---|
name | カテゴリ名 |
slug | カテゴリスラッグ |
term_group | すみません、わからないですw |
term_taxonomy_id | すみません、わからないですw |
taxonomy | タクソノミ。おそらくカテゴリorタグorカスタム投稿タイプの種類だと思う。 |
description | カテゴリ説明文 |
parent | 親カテゴリかどうか。0は親カテゴリなし、1は親カテゴリあり。 |
count | そのカテゴリの記事数 |
これであれば、場所によってカテゴリ順を変えたりすることもできますね。