固定ページにスラッグのクラスを追加する

固定ページの<body>タグのclassにその固定ページのスラッグ(slug)を追加します。
固定ページでは通常のエントリーとは異なるcssを適用したいことがあるかもしれません。

body_class()ではpage-id-**のclass名が付与されますが、**が数値なのでどうも使いづらい。。
そこで、page-slug-**のクラス名を追加で付与します。

functions.phpに下記を追記で完了です。

function my_body_class( $classes, $class = '' ) {
    global $wp_query;
    if ( is_page() ) {
        $page_id = $wp_query->get_queried_object_id();

        $post = get_post($page_id);

        $classes[] = 'page-slug-' . sanitize_html_class( str_replace( '.', '-', $post->post_name ) );
    }

    return $classes;
}
add_filter( 'body_class', 'my_body_class');

slugがaboutの固定ページでは下記のようなclassが出力されるようになります。

<body class="page page-id-48 page-template-default page-slug-about" id="top">

コメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。