我创建了一个自定义侧边栏,用于抓取后父级页面:
query_posts("post_type=page&post_parent=6");
我想抓住post_parent的标题(即“关于”)。 the_title
将无效,因为它是子页面的标题。
如何输出post_parent标题?
答案 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)
答案 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”作为参数,默认为当前帖子。
答案 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)
答案 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() ) ) );