カテゴリとアーカイブウィジェットの投稿件数をaタグの内側に
WordPress にデフォルトで付いている
カテゴリとアーカイブのウィジェット。
デフォルトだと、HTMLソースが ↓ こんな感じ
<ul>
<li class="~"><a href="~" >カテゴリ1</a> (16)</li>
<li class="~"><a href="~" >カテゴリ2</a> (5)</li>
<li class="~"><a href="~" >カテゴリ3</a> (9)</li>
<li class="~"><a href="~" >カテゴリ4</a> (10)</li>
</ul>
投稿数の表示が a タグの外側にあるので、CSS での装飾がやりづらい。
position などを指定してやれば、キレイに装飾できないこともないが、
素直に件数表示を a タグの内側にしてやった方が早いかなと思う。
SEO 的な内部リンクで考えれば、
a タグの外側にあるべきなのかもしれんが、そんなものは微々たるものだ。
というわけで、
カテゴリとアーカイブウィジェットの投稿件数をaタグの内側になるように
functions.php に以下を追加
function wp_list_categories_archives( $output ) {
$output = str_replace(" ", " ", $output);
$output = preg_replace('/<\/a> \(([0-9]*)\)/', ' (${1})</a>', $output);
return $output;
}
add_filter( 'wp_list_categories', 'wp_list_categories_archives', 10, 2 );
add_filter( 'get_archives_link', 'wp_list_categories_archives', 10, 2 );
これで、HTMLソースが ↓ こんな感じに変わる
<ul>
<li class="~"><a href="~" >カテゴリ1 (16)</a></li>
<li class="~"><a href="~" >カテゴリ2 (5)</a></li>
<li class="~"><a href="~" >カテゴリ3 (9)</a></li>
<li class="~"><a href="~" >カテゴリ4 (10)</a></li>
</ul>
さらに、
function wp_list_categories_archives( $output ) {
$output = str_replace(" ", " ", $output);
$output = preg_replace('/<\/a> \(([0-9]*)\)/', ' <span class="count_vew">(${1})</span></a>', $output);
return $output;
}
add_filter( 'wp_list_categories', 'wp_list_categories_archives', 10, 2 );
add_filter( 'get_archives_link', 'wp_list_categories_archives', 10, 2 );
などとしてやれば、
HTMLソースが ↓ こんな感じになるので、
<ul>
<li class="~"><a href="~" >カテゴリ1 <span class="count_view">(16)</span></a></li>
<li class="~"><a href="~" >カテゴリ2 <span class="count_view">(5)</span></a></li>
<li class="~"><a href="~" >カテゴリ3 <span class="count_view">(9)</span></a></li>
<li class="~"><a href="~" >カテゴリ4 <span class="count_view">(10)</span></a></li>
</ul>
.count_view で
投稿数の表示そのものにも装飾ができるようになるでござる。
ディスカッション
ピンバック & トラックバック一覧
[…] 検索して「カテゴリとアーカイブウィジェットの投稿件数をaタグの内側に」さまを参考に […]