我有一个具有以下结构的WordPress网站
Page 1
Sub Page 1
Sub Page 2
Page 2
Sub Page 1
Sub-Sub Page 1
Sub-Sub Page 2
Sub-Sub Page 3
Sub Page 2
Sub Page 3
在任何Sub-Sub页面上,我想在侧边栏导航中列出子页面。
使用以下代码作为起点...它不适用于子子页面,因为它显示的是导航中的子子页面,而不是子页面。
<?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 } ?>
由于
布雷特
答案 0 :(得分:3)
搞定了。这是最终的代码(从http://cssglobe.com/post/5812/wordpress-find-pages-top-level-parent-id拉出来,几乎没有修改)
<?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&depth=1");
if ($children) { ?>
<ul>
<?php echo $children; ?>
</ul>
<?php } ?>
答案 1 :(得分:1)
布雷特,
您必须检查并查看是否有祖父母后遗嘱,然后使用后祖父母的身份证明。您可以使用get_post_ancestors()
function找出有多少祖先,然后相应地调整您的代码。