WordPressで開いているページのスラッグをbody_class()にクラスとして追加する方法

WordPressで開いているページのスラッグをbody_class()にクラスとして追加する方法

WordPressで開いているページのスラッグをbody_class()にクラスとして追加する方法

WordPressにはbody_class()という関数があり、以下のように記述することでbody要素に開いているページに関したクラスを追加することができます。

<body <?php body_class(); ?>>

例えば、トップページを参照中であればhomeというクラスが、投稿を参照中であればsingleやsingle-postなどのクラスが追加されます。

このbody_class()に、開いているページのスラッグを追加する方法が、NxWorldさんで解説されていたので紹介したいと思います。

WordPressで開いているページのスラッグをbody_class()にクラスとして追加する方法

利用しているテーマのfunctions.phpに以下を追加します。


add_filter( 'body_class', 'add_page_slug_class_name' );
function add_page_slug_class_name( $classes ) {
 if ( is_page() ) {
 $page = get_post( get_the_ID() );
 $classes[] = $page->post_name;
 }
 return $classes;
}

そのままコピペでOKです。

上記コードを追加することで、body要素にスラッグのクラスが追加されます。

あとがき

body_class()には、元々「postid-記事ID」というクラスが追加されているので、記事毎に識別することは可能なのですが、記事IDよりもスラッグの方がわかりやすいですね。

なお、NxWorldさんの記事では、親ページのスラッグを用いた方法も解説されています。

この記事が気に入ったら
いいね!してね♪

Twitter で

コメントを残す

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