孙子的Wordpress导航

时间:2012-06-28 18:37:24

标签: php wordpress templates wordpress-theming

我目前正在使用此代码(根据codex)在父页面上显示子项,并在子项上显示父页面的子项:

<?php if($post->post_parent)
    $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");
  else
    $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
  if ($children) { ?>
    <ul>
    <?php echo $children; ?>
    </ul>
<?php } ?>

我想补充一点,如果在辅助子页面(孩子的孩子)上,那么就显示它的父母和父母的兄弟姐妹。

感谢您的帮助! :d

1 个答案:

答案 0 :(得分:1)

<?php
if($post->post_parent)
{
    //get the parent post
    $parent = get_post($post->post_parent);
    //check to see if we have a grandparent
    if($parent->post_parent)
    {
        $page_list = wp_list_pages( array( 'child_of' => $parent->post_parent, 'echo' => false, 'depth' => 1 ) );   
    }
    else
    {
        $page_list = wp_list_pages( array( 'child_of' => $post->post_parent, 'echo' => false, 'depth' => 1 ) );
    }
}
else
     $page_list = wp_list_pages( array( 'child_of' => $post->ID, 'echo' => false, 'depth' => 1 ) );
if ($page_list) { 
?>
<ul>
<?php echo $page_list; ?>
</ul>
<?php } ?>

这将检查帖子是否有父母,然后该帖子是否有父母。 $page_list应该是父级及其兄弟级的页面列表。 'depth' => 1告诉WordPress只获得一个级别的页面。这将阻止它获取这些页面的孩子