列出父级页面的子级页面(父级的子级页面)

时间:2013-01-29 作者:AleksandarS

好的,我正在做一个菜单(侧边栏菜单),它将显示父页(当前打开)的所有子页,父页-子页1-子页2-子页3,但在同一时间,当有人在加粗页(子页)中时,将看到相同的内容父页-子页1-子页1_|-Child 2
uuu124;-Child 3
-Child 2
-Child 3

目前我使用的下一个代码可以很好地完成第一项工作,但不能完成第二项工作,我尝试了几件事,但都没有成功

 <?php if ( is_page() ) { 
if($post->post_parent)
$children = wp_list_pages(\'title_li=&child_of=\'.$post->post_parent.\'&echo=0&sort_column=post_date&sort_order=DESC\'); else
$children = wp_list_pages(\'title_li=&child_of=\'.$post->ID.\'&echo=0&sort_column=post_date&sort_order=DESC\');
if ($children) { ?> .......
提前感谢

Simon回答说,编辑是有效的,但不是所有情况下都有效,所以我现在编辑的最终代码是:

<?php if ( is_page() ) {
    $stats = count($post->ancestors);
if($post->post_parent){ 
  if($stats == 2){
    $children = wp_list_pages(\'title_li=&child_of=\'.get_post( $post->post_parent )->post_parent.\'&echo=0&sort_column=post_date&sort_order=DESC&depth=1\'); 
  }else{
    $children = wp_list_pages(\'title_li=&child_of=\'.$post->post_parent.\'&echo=0&sort_column=post_date&sort_order=DESC&depth=1\');
  }}
else{
  $children = wp_list_pages(\'title_li=&child_of=\'.$post->ID.\'&echo=0&sort_column=post_date&sort_order=DESC&depth=1\');
}
if ($children) { ?> ....
以防其他人需要这些东西,干杯并感谢快速帮助

2 个回复
最合适的回答,由SO网友:Simon 整理而成

你能试试这个吗?我们的想法是,如果有父级,我们应该列出该父级的父级的页面。

<?php if ( is_page() ) { 

    if($post->post_parent) {
        $children = wp_list_pages(\'title_li=&child_of=\'. get_post( $post->post_parent )->post_parent .\'&echo=0&sort_column=post_date&sort_order=DESC\'); 
    } else {
        $children = wp_list_pages(\'title_li=&child_of=\'.$post->ID.\'&echo=0&sort_column=post_date&sort_order=DESC\');
    }
}
另一种解决方案是depth 根据codex,选项只能列出顶级页面:

<?php if ( is_page() ) { 

    if( $post->post_parent ) {
        $children = wp_list_pages(\'title_li=&depth=1&echo=0&sort_column=post_date&sort_order=DESC\'); 
    } else {
        $children = wp_list_pages(\'title_li=&child_of=\'.$post->ID.\'&echo=0&sort_column=post_date&sort_order=DESC\');
    }
}
抱歉,我没有时间尝试代码,但请告诉我们这是否有帮助。

SO网友:M3o

希望这会让你走!

          <?php
          $children = wp_list_pages(\'title_li=&child_of=\'.$post->ID.\'&echo=0&depth=1\');
          if ($children) { ?>
          <?php echo $children; ?> 
          <?php } ?>
这将获得在wp admin中设置的当前页面/模板的子级。

结束

相关推荐

Organizing Your Pages

我在创建子页时遇到问题。到目前为止,我遵循了正确的方向:转到新页面,单击“页面父级”下拉菜单</从下拉菜单中选择适当的父页面,使当前页面成为子页面</准备就绪后单击发布当我发布页面时,会导致找不到页面。例如:假设我有一个南美页面,我添加了“儿童”页面:南美洲当我访问www.mywebsite时,我会看到阿根廷、巴西。com/南美/阿根廷它说找不到页面。但是:www.mywebsite。com/南美洲/(works)</www.mywebsite。com/阿根廷/(works) </