【wordpress】投稿のカテゴリー表示にCSSでクラス名を付ける

小テーマ等のfunction.phpに以下のコードを付けることでクラスを出力します。
下のコードではcategory-数字になります。



/**
* カテゴリにクラス名を付ける
* @param type $output
* @return string
*/
function add_category_class($output) {
if (!is_admin()) {
$category = get_the_category();
$out = $output;
foreach ($category as $key => $value) {
$cat_name = $value->name;
if (preg_match('/' . $cat_name . '/s', $out)) {
$out = preg_replace('/' . $cat_name . '/s', 'cat_ID . '">' . $cat_name . '', $out);
}
}
return $out;
} else {
return $output;
}
}
add_filter('the_category', 'add_category_class', 10, 1);

処理についてざっくり説明すると、$category_list = get_the_category_list( __( ‘ ‘, ‘テーマ名’ ) );で出力されているカテゴリ名を拾って文字列の置換をしています。
ポイントとしましては$outputが複数行の場合があるため正規表現でsをつけています。

カテゴリーのリストを出力する該当テンプレートファイルはcontent.php,content-single.phpに記述されていることが多いと思います。
簡単なカスタマイズの方法を探したのですが、見つけられませんでしたので泥臭い処理になりました。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中