2010-05-06 89 views
1

我想列出所有的子頁面只有一個層次,但一個特定的頁面。我正在讀Function Reference/get pages,並認爲$pages = get_pages(array('child_of' => $post->ID, 'parent' => $post->ID)) ;會做的伎倆,但它不工作。它列出了同一級別上的所有頁面,例如我稱之爲代碼的頁面。如果我省略父母選項,即使有我想要的子頁面,我也會得到所有頁面。但我想only子頁面。只檢索子頁面

全功能就像是

function about_menu(){ 
    if (is_page('about')){ 

    $pages = get_pages(array('child_of' => $post->ID, 'parent' => $post->ID)) ; 
     foreach($pages as $page) 
     {  
     ?> 
      <h2><a href="<?php echo get_page_link($page->ID) ?>"><?php echo $page->post_title ?></a></h2> 
     <?php 
     } 
    } 
    } 
下面

來自WP管理和結果的屏幕截圖。我的是第二個

Screen shot from WP admin http://img687.imageshack.us/img687/6139/e2568e8ec2684e7aa1bb3d1.pngthe result http://img269.imageshack.us/img269/2365/329c5097c78f4d3186a177c.png

+1

var_dump($ post-> ID)會拋出什麼? – choise 2010-05-06 12:37:52

+0

@choise:NULL。 – Radek 2010-05-06 12:40:14

回答

1

嘗試添加

global $post; 

聲明$頁面右側前。

+0

@choise:你是天才:-)它做到了。你能告訴我爲什麼需要那裏嗎? – Radek 2010-05-06 12:46:26

+0

「循環」在遍歷這篇文章時設置了這個全局變量。現在,您可以使用此變量訪問循環中的所有對象。 (全球範圍內的範圍) – choise 2010-05-06 12:50:15

+0

對不起...你在說什麼'loop'? – Radek 2010-05-06 12:52:24

2

退房wp_list_pages()。我認爲這些設置會給你你想要的。

<?php 
$args = array(
    'child_of'  => $post->ID, // current page 
    'depth'  => 1, // get children only, not grandchildren 
    'echo'   => 1, // print immediately when we call wp_list_pages 
    'sort_column' => 'menu_order', // sort by the menu_order parameter 
);  
?> 
<?php wp_list_pages($args); ?> 
+0

@artlung:它給了我和我的代碼相同的結果 – Radek 2010-05-06 12:32:25

+0

所以你的代碼也可以工作,只需要使用'global $ post; ' – Radek 2010-05-06 12:56:04

+0

我可以只有郵編ID的函數返回數組嗎?不打印帖子ID或帖子名稱的列表? – Radek 2010-05-07 23:41:15