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では、「アーカイブ」ウィジェットなどに表示される月別アーカイブリストではその月の投稿数(カウント数)を表示することができます。 ただ、このカウント数...