如何在循环帖子后获取wordpress页面ID?

时间:2010-01-13 04:06:49

标签: wordpress

我在Wordpress中有一个页面循环特定类别的帖子。在sidebar.php中,我想获得子页面列表并将其显示为菜单。但是,当使用get_the_ID()或$ post-> ID时,它会返回循环的最后一个帖子的ID,而不是页面。

如果我在页面中发布帖子后,如何在侧栏中获取页面的ID?

2 个答案:

答案 0 :(得分:2)

我是这样做的: 在你的范围内获取wp_query变量:

global $wp_query;

然后

$wp_query->post->ID

是你的pageId,请注意它可能是一个postId 当你在主帖子页面上时。

答案 1 :(得分:1)

如果您使用的是网页模板,则应执行以下操作:

  1. 在页面模板的顶部创建一个全局变量(我假设您正在使用)
  2. 获取查询对象的ID并将其分配给该变量
  3. 全局化sidebar.php文件中的变量
  4. 使用get_posts或query_posts函数中的变量显示子页面(要使用的正确参数为post_parent
  5. 所以,将它放在页面模板的顶部:

    <?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>
    

    那应该能得到你想要的东西。