WordPressの body_class()にページスラッグを

WordPressテーマのheader.phpあたりにある
[sourcecode language=’php’] >[/sourcecode]
こと細かにclassが出力されるので便利だけど、pegeの内容ごとにデザインを変えたい場合、デフォルトだとpageのslugが出てこないので不便です。
そこでcodexのbody_class()をみると、簡単に拡張できる仕様になっていることが分かりました。なので例えばこんなかんじにすればもっと助かります。
[sourcecode language=’php’] post_name;
body_class(“page-” . $slug);
} else {
body_class();
}
?>>[/sourcecode]
ほかにも条件分岐によってかなり柔軟なclass割り当てができますね。

2013/6/27追記

このような記事を見つけました。こちらのほうがずっとスマートですね。
functions.phpに以下を追加します。
[sourcecode language=’php’]function pagename_class($classes = ”) {
if (is_page()) {
$page = get_page(get_the_ID());
$classes[] = $page->post_name;
}
return $classes;
}

add_filter(‘body_class’,’pagename_class’);[/sourcecode]

2014/3/16追記

親ページについても表示できるように、この記事をさらに実用的にしました。
→ WordPressの body_class()にページスラッグの決定版

“WordPressの body_class()にページスラッグを” への1件の返信

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です