makoto69さん、こんにちは。
方法はありますが、その前にCSSだけで意図した表示ができないか検討してみたほうが良いですね。
タグを追加する方法としては
- wp_list_categoriesでフックして記事数の部分を置換処理
- wp-includes/classes.phpのWalker_Categoryクラス内のstart_elメソッド内での記事数追加部分を直接改変
といったところが現実的かと思います。
jim912さん
返信ありがとうございます。
「フック」という概念?があるんですね、初めてしりました。
おかげさまで希望通りの表示にする事ができましたが
置換処理もまったく判らないレベルなので
以下の記述で問題はないか不安です。
どうでしょうか?
1.functions.phpに以下を追加
add_filter('wp_list_categories','spanCategoriesNum');
2.プラグインを作成して以下を記述
function spanCategoriesNum($categoryNum){
echo str_replace(array("(",")"),array("<span>(",")</span>"),"$categoryNum");
}
makoto69さん、こんにちは。
概ね良いですが、下記の点改善した方が良いです。
- add_filterと実行する関数は同じ箇所に記述した方が同期がとれます。
- フィルターフックはechoさせずにreturnで改変したデータを戻します。それでないと複数フックが登録してある場合、後に実行されるべきフックが実行されなくなってしまいます。それに全てのフックがその場でechoされる訳ではないので
- 提示いただいたコードだと(と)を全て置換してしまいます。正規表現など用いて、より特定させた方が良いです。
function spanCategoriesNum($categoryNum){
$categoryNum = preg_replace( '|(</a>\)? )(\([\d]+\))|', '$1<span>$2</span>', $categoryNum );
return $categoryNum;
}
add_filter('wp_list_categories','spanCategoriesNum');
返事が遅くなってしまいすみません。
コードまでありがとうございます。
やはり正規表現が使えると幅が広がりますね
しかし教えていただいたものが、どういうものが解析しようと
正規表現を解説しているサイトを眺めましたが
なかなか簡単にはいかないですね、精進します。
1と2承知しました
同じ場所に書いたほうが判りやすくて良いですね。
ありがとうございました。