WordPressの固定ページで孫ページ(第3階層)の場合だけ出力する
固定ページが「親ページ」か「子ページか」か「孫ページ」か判断するif文を使用して孫ページ(第3階層)にだけ文字列を出力しようとしたのですが、うまくいきませんでした。
うまくいかない記述
<?php if(!$post->post_parent == 0){ $args = array( 'post_parent'=> $post->ID, 'post_type' => 'page' ); if(!count(get_children($args)) > 0){ echo '孫ページです'; } } ?>
出力結果
親
∟子:文字列出力(孫ページです)
∟子
∟孫:文字列出力(孫ページです)
問題点
この書き方の場合、孫を持つ子ページには文字が出力されないのですが、孫を持たない子ページ(第2階層)には文字列が出力されてしまいます。
うまくいく記述
<?php if(!$post->post_parent == 0){ $args = array( 'post_parent'=> $post->ID, 'post_type' => 'page' ); if(!count(get_children($args)) > 0){ $parent_id = $post->post_parent; $grandparent = get_post($parent_id); $grandparent_id = $grandparent->post_parent; if(!$grandparent_id == 0) { echo '孫ページです'; } } } ?>
出力結果
親
∟子
∟子
∟孫:文字列出力(孫ページです)
解説
親の親のIDが0じゃない( = 親の親を持つ)場合という分岐を付けました。
これで孫ページ(第3階層)にだけ文字列を出力できるようになりました。
MovableType/WordPressを使ったホームページ制作、機能追加や設置代行などの改修、システム開発、サイトの保守を手掛けております。
アナタが実現させたい機能、やりたい事をお聞かせいただけませんか? そのイメージを一緒に実現しましょう!
お問い合わせは以下のページから!!