サイドバーなどにカテゴリーの一覧を表示させたい場合、ウィジェットの「カテゴリー」を使います。カテゴリーウィジェットを使えば、「投稿数を表示」というチェックボックスにチェックを入れれば、そのカテゴリーで投稿されている記事の数をリストに表示してくれます。
当ブログだとこんな感じですね。投稿数が括弧内に表示されています。
カテゴリーウィジェットでは、カテゴリーがすべて表示されるのですが、全部は表示したくないということもあるかと思います。そんな時は、[外観] – [メニュー] でオリジナルのカテゴリーリストを作成してウィジェットで表示させます。
例えば、WordPress 関連のカテゴリーだけを表示させたい場合は、以下のようなメニューを作成します。すべてカテゴリーからメニューに追加しています。
次に [外観] – [ウィジェット] で「カスタムメニュー」を表示させたい場所にドラッグ&ドロップします。「メニューを選択」では作成したカテゴリーのメニューを選択しましょう。
ここで問題となるのが、投稿数の表示です。カスタムメニューのウィジェットでは、投稿数を表示するための設定がないので、カテゴリーリストを作成したとしても投稿数が表示されません。
カスタムメニューで作成したカテゴリーリストに投稿数を表示させる方法
さて、ようやく本題ですが、上記のようにカスタムメニューで作成したカテゴリーリストに投稿数を表示させるためには、functions.php に以下のコードを追加します。
add_filter('wp_nav_menu_objects','my_nav_count'); function my_nav_count($items){ foreach ($items as $item){ if($item->object == 'category'){ $item->title .= " (". get_term($item->object_id,'category')->count .")"; $args[] = $item; } } return $args; }
コピペで使えるので簡単ですね。上記コードを追加すると、以下のように投稿数が表示されるようになります。
あとがき
コードをコピペするだけなので、オリジナルのカテゴリーリストを作成して表示させた時にぜひ試してみてください。
カテゴリー内の投稿数もわかった方が読者にやさしいですよね。
超初心者です。
貴重な情報をありがとうございます。
上記のコピペするコードは、functions.phpのどこに付記するのでしょうか?ちょっと怖くて躊躇しているので、教えていただければ嬉しいです。
やどがえさん、コメントありがとうございます。
基本的にはどこでもいいのですが、他の関数の中に記述しちゃうとエラーになるので、一番下に1~2行改行してから追加するのがいいと思います。最後の行に ?> があったら、?> よりも前に追加してください。
もし何か起こったら、焦らずに追加したコードを削除して再アップロードすれば元に戻ります。コードを追加する前にfunctions.phpをコピーしておくとすぐに戻せて楽ですね。
早速のお返事、ありがとうございます。
バックアップは必須ですね。
やってみます。
チャレンジしました。
1回目はエラーが出て、ブログ画面も出ず、あわてましたが、バックアップ取ってあったので戻しました。
その際は、このページのコードをテキストファイルにコピーしたものを、またコピーしました。それがいけなかったのか、直接このページからコピーしたらOKでした。ありがとうございました。
ついでながら、トップページのカテゴリ(カスタムメニュー)に投稿数は表示されるようになりましたが、記事のページにあるカテゴリリストには投稿数は表示されていません。
ここにも表示させることは可能ですか?
“記事のページにあるカテゴリリスト”は、カスタムメニューで作成したものですか?カスタムメニューで作成したリストであれば、すべてのページで投稿数は表示されると思います。
記事ページにあるリストが、カスタムメニューではなく”カテゴリー”をウィジェットで表示しているだけなら、「投稿数を表示」にチェックを入れれば投稿数が表示されるようになります。
コメント時に入力していただいた URL を確認してみましたが、デフォルトで用意されているカテゴリーリストなのかカスタムメニューで作成したものなのか、判断ができませんでした。。。