祖先ページのスラッグを取得してbody_classに追加する
body_class()にページのスラッグを追加したい、親ページや祖先ページのスラッグも追加したい、というときのコードです。
<?php
if (is_front_page()) {//トップページの場合
$slug = "top";
} else {//トップページ以外の場合
$slugs = array();//slugsという配列を定義
$parent_slugs = get_post_ancestors($post); //祖先ページのid配列
if ($parent_slugs) {//祖先ページがあるとき
foreach ($parent_slugs as $parent_slug) {
$slugs[] = get_post($parent_slug)->post_name;//slugsに祖先ページのスラッグを追加
}
}
$slugs[] = $post->post_name;//現在のページのスラッグを追加
$slug = implode(' ', $slugs);//配列をスペースで区切って文字列にする
}
$class = $slug;
?>
<body <?php body_class($class); ?>>
関連記事
-
WordPress
【WordPress】記事一覧で年別タイトルをつける
-
PHP WordPress
term_description()からpタグを消す
-
WordPress 関数の使い方
【WP】wp_get_archivesがリンク先エラーになる
-
WordPress 設定 関数の使い方
【WordPress】ウィジェット機能の追加
-
WordPress
【WordPress】管理画面をカスタマイズする
-
WordPress
静的サイトに一部WordPressを導入する
-
WordPress プラグイン
【WordPress】フロントでIntuitive Custom Post Orderの並び替えが効かないとき
-
WordPress 関数の使い方
【WordPress】サブループで記事の読み込み