こんにちは!Weblattです。
今日は、下層ページにbodyタグにスラッグ名のclassを付与する方法をご紹介します。
bodyタグにスラッグ名のclassをつけることで、CSS設計が非常に楽になります。
body
にbody_class()
が記述されている状態で、以下をfunctions.php
に記述します。
function pagename_class($classes = ''){
if ( !(is_home() || is_front_page())) {
$page = get_post();
$classes[] = $page->post_name; //スラッグ名取得
}
return $classes;
}
add_filter('body_class', 'pagename_class');
これで、トップページ以外のページでは、スラッグ 名のclassが付与されるようになりました。
スラッグ名だけでなく、$page->post_name;
の部分を特定のclass名に返納することで、任意のclass名を付与することができます。
!(is_home() || is_front_page())
は、「トップページもしくはfront-pageのいずれでもない時」という意味です。この部分をis_archive(),is_page(),is_single()
等に変更すれば、任意の固定ページやアーカイブページへ適用することもできます。
皆さんもやってみてください。それでは!