[WordPress] カテゴリやアーカイブの記事数(括弧まで)までリンクを貼る方法

こちらはコアファイルを修正する方法となります。
もしコアファイルに手を加えない方法を希望する方はこちらの記事をご参照ください。

例えば、カテゴリを下記のようなタグで表示させた場合

<?php wp_list_cats('sort_column=name&optioncount=1'); ?>

こんな風に「Twitter (1)」ってなりますよね。
これを「Twitter (1)」←こうしたいわけです。

記事数までリンクが貼ってないと何が困るって
<a>display:block; を当てた時に
リンクが貼られてない括弧が落ちちゃうんですね。

<a href="#" style="display:block;">Twitter</a> (1)

これだとカッコ悪いので、括弧までリンクを貼って見栄え良くします。


環境によって、弄るソースが多少違うかもしれませんが、
要は、</a>を(記事数)の前に持っていきたいわけです。
参考までに。


投稿数が表示されるカテゴリとアーカイブを修正します。
ファイルは、wp-includes直下にあるcategory-template.phpgeneral-template.phpを修正します。

#category-template.php

ファイル名の通り、カテゴリを修正します。

</a>を消します。

$link .= $cat_name . '</a>';

次に投稿数を表示しない時の条件で、</a>をここで追加するよう条件をつけます。

$link .= $cat_name ;
 
if ( empty($show_count) ){
$link .= '</a>';
}

下記は投稿数を表示する時の条件です。

if ( !empty($show_count) )
    $link .= ' (' . intval($category->count) . ')';

前述の</a>をここに追加します。

if ( !empty($show_count) )
    $link .= ' (' . intval($category->count) . ')</a>';

以上は、投稿数を表示しない時は</a>をカテゴリ名の直後に追加し、
投稿数を表示する時は、</a>を(投稿数)の直後に追加する修正です。

#general-template.php

アーカイブの修正箇所はgeneral-template.phpと少し分かりにくいファイルですが、修正ポイントはカテゴリの場合と同様です。

$afterに投稿数が入るので、</a>$afterの前に持っていきます。

$link_html = "t<li>$before<a href='$url' title='$title_text'>$text</a>$after</li>n";
$link_html = "t<li>$before<a href='$url' title='$title_text'>$text$after</a></li>n";

前述の修正だと、スペース「&nbsp;」が余計に入っているので削除します。

$after = '&nbsp;('.$arcresult->posts.')' . $afterafter;
$after = '('.$arcresult->posts.')' . $afterafter;

以上で終了です。
十二分な確認はしていないので、どこかで綻びが出る可能性大ですので
当稿を参考に修正する場合は、自己責任でお願いします。

追記
この編集をしたのを忘れWordpressの更新をしてしまい、また同じ修正を施しました。
なぜかgeneral-template.phpの835行目の</a>の位置修正だけで期待通りの表示になってます。(バージョン 3.5)