1

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

要检查父案例,以下工作

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

但是在检查祖先时

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

似乎不起作用。

有任何想法吗?

谢谢

4

2 回答 2

1

除了“ninja”提供的功能外,还要注意你的条件不正确:“post_parent”包含父页面的ID,如果当前页面是父页面,则为0。

所以询问页面是否有父页面的实际条件是:

if($page->post_parent != 0)
    // page has a parent
else
    // page is a parent
于 2012-09-29T02:16:43.387 回答
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
}
于 2012-09-28T11:50:12.583 回答