获取顶级页面父标题

时间:2011-10-25 作者:Scott

如何获取访问者当前所在页面的最上层父页面的页面标题?

让我描述一下:

我有以下页面结构:

示例标题1示例标题1-1示例标题3示例标题4示例标题4以下是我要返回的内容:

用户已打开Example Title 1 回来Example Title 1Example Title 1-1 回来Example Title 1Example Title 1-1-1 回来Example Title 1Example Title 2 回来Example Title 2$post->parent 如果0 然后返回页面标题,否则返回上面页面的标题。问题是$post->parent只会返回一个级别。我需要使用某种递归函数,它可以一直返回到$post->parent == 0.

现在我可以自己处理这个问题了,但我能想到的唯一方法是每次都使用get\\u post(),但假设我有8层深(我们需要更深入)。这将涉及加载8页以最终到达顶层。有没有更好的方法?

2 个回复
最合适的回答,由SO网友:Scott 整理而成

通过以下方式找到:

if ( 0 == $post->post_parent ) {
    the_title();
} else {
    $parents = get_post_ancestors( $post->ID );
    echo apply_filters( "the_title", get_the_title( end ( $parents ) ) );
}
如果有更好的方法,请回答。

SO网友:Sisir

不确定这是否有效这可以通过recursive function

function get_post_ancestor_title($post_id){
    $post = get_post($post_id)->post_parent;
    if ( 0 == $post->post_parent ) {
       return get_the_title();
    } else {
       get_post_ancestor_title($post->ID);
    }
}

结束

相关推荐

GET_PAGES和NUMBER-无输出;无错误;

我正在尝试3 父页面中的页面(id为2035). 我正在使用wordpress 3.2.1。这是我的相关代码:<div id=\"videos\" class=\"contentLeft\"> <?php // get the three most recent videos (2035 is the video page) $recentVideos = get_pages(\'child_of=2035&number=3\');