我想列出一个特定页面的所有子页面只有一个级别。我正在阅读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.png和the result http://img269.imageshack.us/img269/2365/329c5097c78f4d3186a177c.png
答案 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;
}