祖先ページのスラッグを取得して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プラグイン】Smart Custom Fieldsの出力
-
WordPress
【WordPress】ループ内のデータ取得
-
WordPress 関数の使い方
【WordPress】サブループで記事の読み込み
-
WordPress 関数の使い方
【WP】wp_get_archivesがリンク先エラーになる
-
WordPress 設定
【WordPress】function.phpの基本設定
-
WordPress 設定 関数の使い方
【WordPress】ウィジェット機能の追加
-
WordPress
【WordPress】カスタムタクソノミーの出力あれこれ
-
WordPress
静的サイトに一部WordPressを導入する