示例:
About
--- Menu 1
--- Menu 2
--- Menu 3
--- Menu 4
如果我在关于页面...我有子页面。 但是,如果进入菜单1,所有页面都会消失
我需要的是一直看到父页面
目前我有这段代码
<? if (is_page()) {
$g_page_id = $wp_query->get_queried_object_id();
wp_list_pages("depth=4&title_li=&child_of=".$g_page_id."&sort_column=menu_order");
}
?>
谢谢!
解决
我用这个并且工作正常!
<?php if ( is_page() ) { ?>
<?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) { ?>
<div class="title"><?php
$parent_title = get_the_title($post->post_parent);
echo $parent_title;
?><span></span></div>
<ul>
<?php echo $children; ?>
</ul>
<?php } } ?>
答案 0 :(得分:8)
你走了。对于作者来说有点晚了,但人们仍会来这里寻求答案; - )
<?php
// determine parent of current page
if ($post->post_parent) {
$ancestors = get_post_ancestors($post->ID);
$parent = $ancestors[count($ancestors) - 1];
} else {
$parent = $post->ID;
}
$children = wp_list_pages("title_li=&child_of=" . $parent . "&echo=0");
if ($children) {
?>
<ul class="subnav">
<?php
// current child will have class 'current_page_item'
echo $children;
?>
</ul>
<?php
}
?>
答案 1 :(得分:0)
最简单的方法是使用get_children()
。它几乎可以满足您的期望。它返回父页面的子页面。
get_children()
基本上是WP_Query
类的包装。
您可以像这样使用它...
$child_args = array(
'post_parent' => 1, // The parent id.
'post_type' => 'page',
'post_status' => 'publish'
);
$children = get_children( $child_args );
如果您想返回当前帖子的子级,则可以将$post->ID
作为'post_parent'
传递。