Posted at

【WordPress】固定ページが親子関係をもつか調べる

More than 5 years have passed since last update.

人間は親がいないと生まれませんが、固定ページは天涯孤独のやつのほうが多数派ですね。

サイトではよく、横にサイドバーを表示したりすると思うのですが、例えば、親子関係のない単独のページでは、サイドバーを表示しないようにしたい、とかありますよね?

固定ページが親子関係をもつか調べる関数を作ってみました。


functions.php

function is_lonely() {

global $post;

if(is_page()) {
$children = get_children(array('post_parent' => $post->ID, 'post_type' => 'page'));
if(empty($children)) { // 子ページをもたない
$ancestors = get_post_ancestors($post->ID);
if(empty($ancestors)) {
return true; // 親をもたない
} else {
return false; // 親をもつ
}
} else {
return false; // 子ページをもつ
}
} else {
return false; // 固定ページじゃない
}
}


小ネタでした。


参考サイト

関数リファレンス/get post ancestors

関数リファレンス/get children