Help us understand the problem. What is going on with this article?

【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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away