0017

WordPressで指定カテゴリの記事数を表示する方法

WordPressで指定カテゴリの記事数を表示する方法

2010.4.2

2011/6/11追記

この方法より、若干汎用的?な方法を記事にしました。「WordPressでプラグインを使わずにカテゴリ表示順を並び替える方法|1bit::memo

但し、こちらの方法が簡単な場合もありますので、時と場合によって使い分けるといいかもしれません。

記事はじまり

一般的にカテゴリ事の記事数を表示するには、例えば

な感じで表示することが多いと思います。ですが、

という状態になることが良くありますw

そこで、発想を変えて、任意の場所に指定したカテゴリの記事数を表示する方法をやってみた所、上手くいったのでメモしておきたいと思います。

動作環境

WordPress2.9.2での動作を確認しています。

イメージ結果

イメージ結果はこんな感じ。都道府県のデザインは、htmlとCSSで普通にコーディングした上で、数字部分をphpで処理しています。

](https://0017.org/wp-content/uploads/2010/04/esp_001.jpg)

コード

functions.phpに以下のコードを記述。cnとはCategoryNumberの略です(適当ですねw)

function cn($catname){
//カテゴリ名を取得
$cat_properties = get_term_by( 'name', $catname , 'category' );
$result = $cat_properties->count;
//カウント
if($result != 0){
//カウント結果が0でなかったら
echo $result;
//その結果を表示
}else{
echo "0";
//そうでなかったら0を表示
}
}

HTML任意の場所に以下のphpコードを記述。(カテゴリーで設定した名前を記述します。スラッグではない)

これであれば、かっこを変更したり、タグで囲んでCSSで加工したりすることが簡単にできます。

一見動作が重くなりそうですが、都道府県程度(47つ)では、そんなに重さを感じませんでした。

スラッグでやる場合(動作未確認)

もしカテゴリ名ではなく、カテゴリスラッグ名でやりたい場合は、function.phpの以下の部分を

$cat_properties = get_term_by( 'name', $catname , 'category' );

以下のようにslugと変更し、

$cat_properties = get_term_by( 'slug', $catname , 'category' );

コード部分にスラッグ名(下記の例ではibaraki)

  • 茨城県()
  • で行けるんじゃないかと思います。(確認してませんw)