仅检索子页面

时间:2010-05-06 12:12:09

标签: php wordpress

我想列出一个特定页面的所有子页面只有一个级别。我正在阅读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 admin和结果的屏幕截图。我是第二个

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

3 个答案:

答案 0 :(得分: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 ); ?>

答案 1 :(得分:1)

尝试添加

global $post;

在宣布$ pages之前。

答案 2 :(得分:0)

$paginas = array();
$paginas_obj = get_pages('sort_column=post_parent,menu_order');
$paginas['false'] = "Seleciona pagina";
  foreach ($paginas_obj as $pagina) {
  $paginas[$pagina->ID] = $pagina->post_title;
}