如果当前页面有子页面,则返回true的函数


8

我正在尝试创建一个简单的功能来进行“状态测试”。目的是测试并查看正在查看的当前页面是否具有任何子页面。使用此更改布局以适应子页面。以下代码似乎应该可以工作,但是可惜没有骰子。

有人看到我想念的吗?

function is_subpage() {
global $post;                              // load details about this page

if ( is_page() && $post->post_parent ) {   // test to see if the page has a parent
    return true;                                            // return true, confirming there is a parent

} else {                                   // there is no parent so ...
    return false;                          // ... the answer to the question is false
}

}

Answers:


14

您上面的函数测试页面是否其他页面的子页面,而不是页面是否有子页面。

您可以像这样测试当前页面的子级:

function has_children() {
    global $post;

    $children = get_pages( array( 'child_of' => $post->ID ) );
    if( count( $children ) == 0 ) {
        return false;
    } else {
        return true;
    }
}

进一步阅读:


8

如果您使用的是自定义帖子类型,则此为任何帖子类型的版本

function has_children($post_ID = null) {
    if ($post_ID === null) {
        global $post;
        $post_ID = $post->ID;
    }
    $query = new WP_Query(array('post_parent' => $post_ID, 'post_type' => 'any'));

    return $query->have_posts();
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.