下面是一个简短WordPress的代码,我想与大家分享。我碰到的第2级和第3级显示的导航水平侧栏不管哪个页面都要显示。为解决,google搜索,提出一项简短的代码片段。

我创建了我的主题新的一页,我将使用从现在起展出第二下调一边航行。我命名为subnav.php,它在我的sidebar.php包括

<?php include("subnav.php"); ?>

下面是代码:
<?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 } ?>

此代码检查,如果我们的网页上(当前页)有上级别。如果是这样,这意味着我们至少2级的导航。
在这种情况下函数get_post_ancestors被调用。它返回的所有祖先的ID数组到顶层(根)。
要获得顶级的祖先,我们需要获取该数组的最后一个项目的ID。

另一方面,如果我们的网页上没有一个父级这意味着我们正在对一个顶级网页,
所以我们可以使用当前页ID。

一旦我们得到了最高层,我们可以利用它在wp_list_pages函数来获取其下级。

希望它帮助别人。 :)我会使用它这是肯定的!

寒林

www.3code.cn 专注WordPress企业主题