Wordpressのメニューのカテゴリ名に記事数を表示する方法【JIN対応】
かわずんです。
Wordpressのメニューに表示されているカテゴリー名の横に、個々のカテゴリーに属している合計記事数(投稿数)を表示する方法の説明です。
私はテーマにJINを使っているので、JINでの動作を確認しています。
親カテゴリに子カテゴリを合わせた合計投稿数を表示する場合
親カテゴリに子カテゴリを合わせた合計投稿数を表示し、さらに、子カテゴリにそれぞれの合計投稿数を表示する方法です。
以下のような表示になります。
やり方は簡単。
functions.phpに以下のコードを追加するだけです。
add_filter('wp_nav_menu_objects', 'my_nav_count'); function my_nav_count($items) { foreach($items as $item) { if($item->object == 'category') { $count = get_term($item->object_id,'category')->count; $tax_terms = get_terms('category', array('child_of'=>$item->object_id)); foreach ($tax_terms as $tax_term) { $count += $tax_term->count; } $item->title .= "(".$count.")"; $args[] = $item; } else { $args[] = $item; } } return $args; }
子カテゴリのみ合計投稿数を表示する場合
親カテゴリには投稿数を表示したくない場合です。
上のイメージ例で言うと、「仕事」の所に投稿数が表示されなくなります。
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->post_parent != 0) { $count = get_term($item->object_id,'category')->count; $tax_terms = get_terms('category', array('child_of'=>$item->object_id)); foreach ($tax_terms as $tax_term) { $count += $tax_term->count; } $item->title .= "(".$count.")"; $args[] = $item; } else { $args[] = $item; } } return $args; }
以上です。
誰かの役に立てば。