在没有子页面时加载父页面

时间:2012-03-14 作者:rhand

我使用以下代码在所有页面的侧栏中加载子页面:

<?php
                 $children = wp_list_pages(\'title_li=&child_of=\'.$post->ID.\'&echo=0&depth=1\');
                  if ($children) { ?>
                  <ul id="three-menu">
                  <?php echo $children; ?>
                  </ul>
                  <?php } ?>
它适用于所有具有子页或子页的页面。但是如果我想在没有孩子的情况下,在这个有孩子的侧边栏页面上加载家长]怎么办?向另一个if或elseif添加什么代码?基本上我需要添加一个No children? Then loads parent pages..

Update:

http://www.fldtrace.com/wordpress/how-to-display-parent-page-title-in-wordpress 我发现以下代码用于加载父页链接:

<?php

$parent_title = get_the_title($post->post_parent);?>
<a href="<?php echo get_permalink($post->post_parent) ?>"><?php echo $parent_title;?></a>
这很好,但我需要列出所有父页面,它们是父页面的子页面。。。

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

可能的代码:

<?php                  
$children = wp_list_pages(\'title_li=&child_of=\'.$post->ID.\'&echo=0&depth=1\');                   
    if ($children) { ?>                   
        <ul id="three-menu">                   
        <?php echo $children; ?>                   
        </ul>                   
    <?php } //ends (if($children)//
    elseif($post->post_parent) { //if no children, try to get parent page and show siblings pages including the page itself
    $siblings = wp_list_pages(\'title_li=&child_of=\'.$post->post_parent.\'&echo=0&depth=1\');                  
        if ($siblings) { ?>                   
            <ul id="three-menu">                   
            <?php echo $siblings; ?>                   
            </ul> 
        <?php } //ends if($siblings)// ?>                  
    <?php } else { //optional: if no children and if no parent, then show all top level pages
    $pagelist = wp_list_pages(\'title_li=&echo=0&depth=1\');                   
        if ($pagelist) { ?>                   
            <ul id="three-menu">                   
            <?php echo $pagelist; ?>                   
            </ul>
        <?php } //ends if($pagelist)// ?>
    <?php } ?>  
包含大量冗余编码,以保持结构简单易懂。

结束

相关推荐