WordPress帮助检查是否父页面

时间:2011-02-10 03:17:59

标签: wordpress parent-child

我有这个函数来检查页面是否是父页面:

function is_tree($pid) {      // $pid = The ID of the page we're looking for pages underneath
        global $post;         // load details about this page
        if(is_page()&&($post->post_parent==$pid||is_page($pid)))
               return true;   // we're at the page or at a sub page
        else
               return false;  // we're elsewhere
};

并像这样使用它来显示菜单:

<?php if (is_tree(6) || is_page(6)) { menu code here } ?>

然而,它仅适用于直接子页面而不适用于子子页面,例如

domain.com/page1.0/page1.1/page1.1.1/

如果page1.0的id为6,则菜单将显示在第1.0页和第1.1页,但不会显示在1.1.1

如何修改代码,以便树函数适用于低于指定页面ID的ANYTHING,而不仅仅是IMMEDIATE子页面。

由于

2 个答案:

答案 0 :(得分:1)

使用get_post_ancestors()

function is_tree( $pid ) {
    if ( is_page() ) {
        return ( get_the_ID() == $pid || in_array( $pid, get_post_ancestors( get_the_ID() ) ) );
    }

    return false;
}

答案 1 :(得分:0)

这有效:

function is_tree( $pid ) {
global $post;         // load details about this page
if ( is_page() ) {
    return ( $post->ID == $pid || in_array( $pid, get_post_ancestors( $post->ID ) ) );
}

return false;

};