body_classに最上位の親ページのスラッグを出力したい
-
3階層くらいで固定ページを作っています。仮に
/japan/aichi/nagoya という階層だとしましょう。nagoyaページにいるとき、bodyに 今いるページのスラッグnagoyaと、
最上位ページのスラッグjapanを出力させたいと思います。▼理想
<body class=”nagoya japan page-child parent-pageid-03 (以下略)”>そこで、過去ログのこちら:「[解決済み] 選択ページの一番上の親のID取得方法」を参考に、
functions.phpに//最上位の親ページのスラッグを取得 function ps_get_root_page( $cur_post, $cnt = 0 ) { if ( $cnt > 100 ) { return false; } $cnt++; if ( $cur_post->post_parent == 0 ) { $root_page = $cur_post; } else { $root_page = ps_get_root_page( get_post( $cur_post->post_parent ), $cnt ); } return $root_page; }
//body_classの拡張 function custom_body_class($slug) { $page = get_page($page_id); $slug[0] = $page->post_name; $slug[1] = get_page_uri($root_page->ID); return $slug; } add_filter('body_class','custom_body_class');
を記述したところ、
<body class=”nagoya japan/aichi/nagoya page-child parent-pageid-03 (以下略)”>
という感じになってしまいました。japan/aichi/nagoya を nagoyaだけにする方法はわかったんですが、japanだけにすることができていないので、何かしらヒントを頂けますでしょうか。
5件の返信を表示中 - 1 - 5件目 (全5件中)
5件の返信を表示中 - 1 - 5件目 (全5件中)
- トピック「body_classに最上位の親ページのスラッグを出力したい」には新たに返信することはできません。