我创建了一个使用侧栏的模板,在侧栏中我想显示父页面的子页面。要实现这一点,我使用:
<?php $children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0');
if ($children) { ?>
<ul>
<?php echo $children; ?>
</ul>
<?php } ?>
这在父页面上按预期工作。
当我在子页面上时,侧栏是空的,因为没有孩子,正如预期的那样。无论如何,我可以继续在父母的子页面上显示子页面。
1)点击主导航链接,转到部分主页 - 侧边栏中显示的子页面 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');