WordPressで最上位の親ページスラッグを取得する。
2014年06月11日
固定ページを階層化し、最上位の親ページのスラッグによってヘッダ画像等を切り替えたい場合の対処メモ。
$slugに、親ページが無ければ自分自身の、親ページがあれば最上位のページのスラッグを代入します。
forループの方が良いと思うけれど、ループの終了条件がなぜかうまく動作せず。
- <?php
- $page = get_page(get_the_ID()); //ページを取得。
- $slug = $page->post_name; //ページスラッグ取得。
- //WordPressで最上位の親ページスラッグを取得する。
- $parent = get_post_ancestors( $post->ID ); //$parentに親ページの配列を代入。
- $i = 0;
- while ($parent[$i]) {
- $parentID = get_post($parent[$i]);
- $i++; //0、1、2と、親の親を辿っていく。一番大きな数字が最上位の親。
- }
- if($parentID) { //親ページのIDがあれば・・・
- $slug = $parentID->post_name; //$slugを最上位の親ページのスラッグで書き換え。
- }
- ?>
ancestorsはサブメニュー等、いろいろなところでキーワードとして役立ちますね。
この記事は2014/06/11に公開され、199 views読まれました。