我在Wordpress中有一个页面循环特定类别的帖子。在sidebar.php中,我想获得子页面列表并将其显示为菜单。但是,当使用get_the_ID()或$ post-> ID时,它会返回循环的最后一个帖子的ID,而不是页面。
如果我在页面中发布帖子后,如何在侧栏中获取页面的ID?
答案 0 :(得分:2)
我是这样做的: 在你的范围内获取wp_query变量:
global $wp_query;
然后
$wp_query->post->ID
是你的pageId,请注意它可能是一个postId 当你在主帖子页面上时。
答案 1 :(得分:1)
如果您使用的是网页模板,则应执行以下操作:
post_parent
)所以,将它放在页面模板的顶部:
<?php
global $xyz_queried_object_id, $wp_query;
$xyz_queried_object_id = $wp_query->get_queried_object_id();
?>
然后将其放在侧边栏中:
<h2><?php _e( 'Subpages') ?></h2>
<ul>
<?php
global $xyz_queried_object_id;
$subpages = new WP_Query(array('post_type'=>'page','post_parent'=>$xyz_queried_object_id));
while( $subpages->have_posts() ) {
$subpages->the_post();
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php
}
?>
</ul>
那应该能得到你想要的东西。