WEB系キャンパス

カテゴリ一覧に投稿数を表示させて、カテゴリ名と投稿数を個別にレイアウト【WordPress】

当サイトのカテゴリリストでこんな感じでレイアウトしたい場合のメモ。

category-list

まずは、カテゴリ一覧を<li>で呼び出すには該当箇所に下記のコード


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

上記コードの「show_count=1」が投稿数を表示させるコード

これだと投稿数は「例:カテゴリ名(◯)」という表示になって、投稿数部分はリンク領域にならない。
理想としては
・当個数を囲うカッコ()は消したい
・投稿数もリンク領域にしたい
・投稿数部分に個別にclassをつけてcssでいじりたい。

そういう場合はfunctions.phpに以下のコードを追記

add_filter( 'wp_list_categories', 'my_list_categories', 10, 2 );
function my_list_categories( $output, $args ) {
  $output = preg_replace('/<\/a>\s*\((\d+)\)/',’ <span class="number">$1</span></a>',$output);
  return $output;
}

これで抽出されるカテゴリリストのHTMLは以下のようになるので、カテゴリ名と投稿数を個別にcssで調整することができる。


<ul>

<li><a href="">カテゴリ名</a><span class="number">投稿数</span></li>

</ul>

特定カテゴリを除外したい場合は以下のコード

例:カテゴリID「5」を除外したい場合

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

※複数のカテゴリを除外したい場合は「,」で区切るだけ。(例はカテゴリID5と1と2を除外)

<ul>
 <?php wp_list_categories('orderby=count&order=desc&show_count=1&title_li=&exclude=5,1,2'); ?>
</ul>

【参考サイト】

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です