wordpress: body_class()を使用した時にページスラッグをクラス名に追加する

wordpressにはbodyに開いているページに関するクラス名を自動で付与するための

<body <?php body_class( 'class-name' ); ?>>
// 出力結果:
// <body class="page page-id-2 page-parent page-template-default logged-in class-name">

といった便利な関数があります。
個別でスタイルを当てたい時なんかにとっても便利!

便利なんだけど・・・固定ページの個別に当てたい時は、【page-id-ページID】となるので、一見ではどこのページにスタイルが当たっているのかわからないということになります。

そこで、今回は固定ページのスラッグ名をbodyクラスに追加する方法をご紹介します。

目次

function.phpに追加しよう!

function.phpに以下のコードを追加することで、bodyクラスに固定ページスラッグが追加できますよ!お手軽ですね!


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

ただ、固定ページのスラッグ名が日本語名のままだと色々と不都合なので、スラッグ名を半角英数字に設定してから使ってくださいね!

おまけ

bodyのクラスに任意のクラス名をつけたい場合は、こんな感じ。

<?php body_class( 'ここに任意のクラス名' ); ?>>
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次