Wordpress - 显示孩子自己的子页面

时间:2015-12-15 12:29:24

标签: php html wordpress

我创建了一个使用侧栏的模板,在侧栏中我想显示父页面的子页面。要实现这一点,我使用:

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

这在父页面上按预期工作。

当我在子页面上时,侧栏是空的,因为没有孩子,正如预期的那样。无论如何,我可以继续在父母的子页面上显示子页面。

1)点击主导航链接,转到部分主页 - 侧边栏中显示的子页面 2)单击子项并将子页面保留在侧栏中

侧栏用于所有页面,所有部分都需要这样。

2 个答案:

答案 0 :(得分:1)

将您的代码更新为以下内容,

   <?php
    if ($post->post_parent) {
        $ancestors=get_post_ancestors($post->ID);
        $root=count($ancestors)-1;
        $parent = $ancestors[$root];
    } else {
        $parent = $post->ID;
    }
    $children = wp_list_pages("title_li=&child_of=". $parent ."&echo=0");
    if ($children) { ?>
    <ul id="subnav">
        <?php echo $children; ?>
    </ul>
    <?php } ?>

我希望这会有所帮助。

答案 1 :(得分:1)

$post object包含post_parent变量,可用于确定我们是否正在查看子页面。

// Get the parent post ID, if we're looking at a child page
// Else, the current post is a parent post
$parent = $post->post_parent ? $post->post_parent : $post->ID;
$children = wp_list_pages('title_li=&child_of=' . $parent . '&echo=0');