如何检查WordPress页面是否有另一页作为祖先?

时间:2012-09-28 10:54:43

标签: wordpress wordpress-theming

正如标题所暗示的那样,我试图找出某个页面是否有另一页作为父母或大父母或曾祖母等...

要检查父案例,以下工作

if (1 == $post->post_parent) {

但在检查祖先时

if (1 == $post->post_ancestor) {

似乎不起作用。

有什么想法吗?

由于

2 个答案:

答案 0 :(得分:1)

没有内置的支持,但你可以使用这个帮助函数,只需将它放在你的functions.php中:

function get_ancestor() {
global $post;
if ($post->post_parent) {
    $ancestors=get_post_ancestors($post->ID);
    $root=count($ancestors)-1;
    $parent = $ancestors[$root];
} else {
    $parent = $post->ID;
}

    return $parent;
}

它将返回作为祖先的帖子的ID,因此您可以像这样使用它:

if(1 == get_ancestor()) {
    // Code here
}

答案 1 :(得分:1)

除了“忍者”提供的功能外,还要注意您的情况不正确:“post_parent”包含父页面的ID,如果当前页面是父页面,则为0。

因此询问页面是否有父级的实际情况是:

if($page->post_parent != 0)
    // page has a parent
else
    // page is a parent