此代码显示父页面及其子页面列表,但不显示祖父母页面。(这是左侧边栏中的第二个红色菜单here).
这有一个问题。此代码输出all pages on the website 如果用户是on a post or archives page (see here).
如何防止这种情况发生?这段代码又大又笨重,有更简单的解决方案吗?谢谢你的帮助。
<?php //parent variables
$parent = get_post($post->post_parent);
$parent_title = get_the_title($parent);
$grandparent = $parent->post_parent;
$grandparent_title = get_the_title($grandparent);
$current_page_parent = ( $post->post_parent ? $post->post_parent : $post->ID );?>
<?php // is the homepage the granparent? = third level page
if ($grandparent == is_page(\'0\')) {
$children = wp_list_pages("title_li=&include=".$post->post_parent."&echo=0"); // list the parent page
$children .= wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0"); // append the list of children pages to the same $children variable
if ($children) { ?>
<ul class="submenu">
<?php echo $children; /*print list of pages*/ ?>
</ul>
<?php }?>
<?php // is the homepage the parent? = second level page
} elseif ($post->post_parent ==is_page(\'0\')) {
$children = wp_list_pages(\'title_li=&child_of=\'.$post->ID.\'&echo=0\');
if ($children) { ?>
<ul>
<li class="current_page_item"><?php echo get_the_title(); ?></li>
<?php echo $children; ?>
</ul>
<?php
} else {// your else stuff
}
?>