2010-01-13 74 views
2

我在Wordpress中有一個頁面,用於在特定類別中循環發佈帖子。在sidebar.php中,我想獲取一個子頁面列表並將它們顯示爲一個菜單。但是,使用get_the_ID()或$ post-> ID時,它將返回循環的最後一個帖子的ID,而不是頁面。如何在循環帖子後獲得wordpress頁面ID?

我在頁面中放置帖子後,如何獲得側欄中頁面的ID?

回答

1

如果您使用頁面模板,你應該做以下事情:

  1. 建立在你的頁面模板的頂部一個全局變量(我假設你正在使用)
  2. 獲取查詢對象的ID並將其分配給該變量
  3. 全球化的變量在你的sidebar.php文件
  4. 使用在get_posts或query_posts變量函數顯示子頁面(使用正確的參數是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> 

這應該得到你想要的東西。

+0

不知道爲什麼我不認爲使它成爲查詢帖子的全局變量。謝謝!完美工作。 – Kristopher 2010-01-13 17:43:17

2

我做到了,像這樣: 得到您範圍wp_query變量:

global $wp_query; 

然後

$wp_query->post->ID 

是你PAGEID,要知道,這可能是一個帖子ID 當你」關於你的主帖子頁面。

相關問題