BLOGHIVE PROJECT

共同雑記ブログ『BLOGHIVE PROJECT』です!

BLOGHIVE PROJECT

Wordpressのメニューのカテゴリ名に記事数を表示する方法【JIN対応】

f:id:kawazn_aus:20180910213236j:plain

かわずんです。

 

Wordpressのメニューに表示されているカテゴリー名の横に、個々のカテゴリーに属している合計記事数(投稿数)を表示する方法の説明です。

 

私はテーマにJINを使っているので、JINでの動作を確認しています。

親カテゴリに子カテゴリを合わせた合計投稿数を表示する場合

親カテゴリに子カテゴリを合わせた合計投稿数を表示し、さらに、子カテゴリにそれぞれの合計投稿数を表示する方法です。

 

以下のような表示になります。

 

f:id:kawazn_aus:20180910212440j:plain

 

やり方は簡単。

 

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;
}

以上です。

 

誰かの役に立てば。