WordPressテーマのheader.phpあたりにある
<body <?php body_class(); ?>>
こと細かにclassが出力されるので便利だけど、pegeの内容ごとにデザインを変えたい場合、デフォルトだとpageのslugが出てこないので不便です。
そこでcodexのbody_class()をみると、簡単に拡張できる仕様になっていることが分かりました。なので例えばこんなかんじにすればもっと助かります。
<body <?php
if (is_page()) {
$page = get_page(get_the_ID());
$slug = $page->post_name;
body_class("page-" . $slug);
} else {
body_class();
}
?>>
ほかにも条件分岐によってかなり柔軟なclass割り当てができますね。
2013/6/27追記
このような記事を見つけました。こちらのほうがずっとスマートですね。
functions.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');
2014/3/16追記
親ページについても表示できるように、この記事をさらに実用的にしました。
→ WordPressの body_class()にページスラッグの決定版