WordPressでカテゴリーを取得するときの件数表示をaタグ内に入れる方法

WordPressでカテゴリーを取得するときの件数表示をaタグ内に入れる方法

WordPressでカテゴリー一覧を取得する際に、「カテゴリーの脇にそのカテゴリーで書かれた記事数を表示したい」ということがあります。

こういう形にすると数字のところがリンクになってなくて不便に感じてたんですが、記事件数もaタグの中に含める方法を見つけたのでご紹介します。

カテゴリー一覧に記事件数を表示するけどもaタグの外側にあるもの

カテゴリー一覧を取得する際に下記のように書くのが一般的で、カテゴリー一覧を表示しつつ、そのカテゴリーに含まれる記事の件数を表示できます。「show_count=1」で件数を取得できるんですね。

<?php wp_list_categories('orderby=count&order=desc&show_count=1&title_li='); ?>

ただ、こういう書き方をすると出力されるHTMLは下記のように「件数がaタグの外側にある状態」になってしまいます。

<li><a href="URL">カテゴリー名</a>(件数)</li>

こうなってると件数のところをクリックしてもリンクにならないため当たり判定が小さくなってしまいますし、CSSでデザインする際にちょっと面倒なんですよね。

というわけで、これの解決策についてご紹介します。

カテゴリー一覧に表示する記事件数をaタグの中に入れる

カテゴリー一覧の脇に表示される記事件数を、aタグの中に含めるには下記のように書けばオッケーです。

<?php
$categories = get_categories();
$separator = "";
$output = "";
if($categories){
foreach($categories as $category) {
$output .= '<li><a href="'.get_category_link( $category->term_id ).'">'.$category->cat_name.' ('.$category->count.')'.'</a>'.$separator.'</li>';
}
  echo trim($output, $separator);
}
?>

こうすればHTMLの構造は下記のようになります。

<li><a href="URL">カテゴリー名 (件数)</a></li>

7行目で出力されるHTMLを整形できますので、お好みでカスタマイズしてください。

また、上記の例だとliタグを出力するようにしてますが、ulタグで囲われるわけではないので、phpのソースコードの外側にulタグを設置してくださいね。

参考にしたサイトはこちら。

最後に

カテゴリー一覧はこういう形で件数までリンクになっていてほしいので、僕は便利だと感じてます。

他にもWordPressのカテゴリーで便利な方法について書いた記事をいくつかご紹介しますね。

キーワード
WordPress