WordPress:获取post_parent标题

时间:2011-03-04 19:15:57

标签: wordpress parent title

我创建了一个自定义侧边栏,用于抓取后父级页面:

query_posts("post_type=page&post_parent=6"); 

我想抓住post_parent的标题(即“关于”)。 the_title将无效,因为它是子页面的标题。

如何输出post_parent标题?

6 个答案:

答案 0 :(得分:24)

echo get_the_title( $post->post_parent );

echo get_the_title( X );

其中X是任何有效的帖子/页面ID。

无需为一个属性获取完整的帖子对象。

答案 1 :(得分:8)

看起来你已经获得了父帖的ID,所以你可以使用它:

<?php
    $parent_post_id = 6;
    $parent_post = get_post($parent_post_id);
    $parent_post_title = $parent_post->post_title;
    echo $parent_post_title;
?>

(将您的父帖子ID插入$ parent_post_id)

参考:http://codex.wordpress.org/Function_Reference/get_post

答案 2 :(得分:3)

WordPress 5.7 引入了一个新的辅助函数,可以更轻松地获取父帖子的 ID: get_parent_post()

这也可以与 has_parent_post() 结合使用,因此您可以得到如下所示的内容:

<?php if ( has_parent_post() ) : ?>
    <a href="<?php the_permalink( get_parent_post() ); ?>">
        <?php the_title( get_parent_post() ); ?>
    </a>
<?php endif; ?>

请注意,这些函数接受一个“子帖子 ID”作为参数,默认为当前帖子。

https://make.wordpress.org/core/2021/02/10/introducing-new-post-parent-related-functions-in-wordpress-5-7/

答案 3 :(得分:1)

这是您需要的干净且漂亮的代码:

当存在多个父层次结构级别时,也可以使用它。

<?php 

    $current = $post->ID;

    $parent = $post->post_parent;

    $grandparent_get = get_post($parent);

    $grandparent = $grandparent_get->post_parent;

    ?>

    <?php if ($root_parent = get_the_title($grandparent) !== $root_parent = get_the_title($current)) {echo get_the_title($grandparent); }else {echo get_the_title($parent); }?>

答案 4 :(得分:0)

我写了这个,它会抓住父帖,然后回显父母标题等。看一下,让我知道它是否适合你。

https://gist.github.com/1140481

这甚至可以在wordpress循环之外工作。

答案 5 :(得分:0)

我知道这是一个非常老的问题,但是如果有人在寻找一些不错的单线产品。在这里:

echo get_the_title( wp_get_post_parent_id( get_the_ID() ) );

如果要保留标题过滤器,请继续:

echo apply_filters( 'the_title', get_the_title( wp_get_post_parent_id( get_the_ID() ) ) );