MENU

WordPressでカテゴリー一覧リストの投稿件数(カウント数)をアンカータグの中に移動する方法

2019 9/02

WordPressでは、「カテゴリー」ウィジェットやwp_list_categories()関数を使用するとカテゴリー一覧リストを簡単に表示できます。

このカテゴリーリストには、設定によって投稿件数も表示できますが、デフォルトではその件数がリンク(aタグ)の外側に出力されます。

今回は、この投稿件数をaタグの中に入れる方法をメモしていこうと思います。

目次

カテゴリーリストの投稿件数をaタグの中に移動させる方法

'wp_list_categories'というフィルターフックを使って、カテゴリーリストで出力されるHTMLを書き換えてあげます。

処理的には、str_replace()関数で単純に文字列を置換させるだけなので、非常に簡単です。

投稿件数をaタグの中に移動させるコード

function filter_to_wp_list_categories( $output ) {
  $output = str_replace( '</a> (', '(', $output );
  $output = str_replace( ')', ')</a>', $output );
  return $output;
}
add_filter('wp_list_categories', 'filter_to_wp_list_categories');

これは何をしているかというと、カテゴリーリストのHTMLは<li><a>カテゴリー名</a> (10)</li>のような出力内容なので、
</a> ()をそれぞれ、()</a>に置換しています。

正規表現で以下のようにしても可

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

ついでにspanタグでも囲むパターン

スタイルをあてやすいように、spanタグで囲みたい場合は以下のようにしましょう。

function filter_to_wp_list_categories( $output ) {
  $output = str_replace( '</a> (', '<span>(', $output );
  $output = str_replace( ')', ')</span></a>', $output );
  return $output;
}
add_filter('wp_list_categories', 'filter_to_wp_list_categories');

正規表現なら以下のようになりますね。

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

月別アーカイブリストの投稿数をaタグの中に入れる方法もメモしていますので、ぜひ参考にしてみてください。

あわせて読みたい
WordPressで月別アーカイブリストの投稿件数(カウント数)をアンカータグの中に移動する方法
WordPressで月別アーカイブリストの投稿件数(カウント数)をアンカータグの中に移動する方法WordPressでは、「アーカイブ」ウィジェットなどに表示される月別アーカイブリストではその月の投稿数(カウント数)を表示することができます。 ただ、このカウント数...

この記事が気に入ったら
フォローしてね!

目次
閉じる
WordPressテーマ SWELLWordPressテーマ SWELL