好的,找到了另一个现在完美的解决方案:
<?php
//Automatic Submenu
global $wp_query;
//Wenn die Seite ein Grandparent ist, also keine Eltern hat...
if( empty($wp_query->post->post_parent) )
{
//Herausfinden ob es Kinder gibt...
$ich=$wp_query->post->ID;
$children = wp_list_pages("title_li=&child_of=$ich&echo=0");
if ($children)
{
$parent1 = $wp_query->post->ID;
//Menue ausgeben
echo "<ul class='topseiten'>";
wp_list_pages("title_li=&child_of=$parent1&depth=1");
echo "</ul>";
}
else {
echo "<ul class='topseiten'>";
wp_list_pages("title_li=&depth=1");
echo "</ul>";
}
}
else
//hat Eltern, ist also ein parent
{
$ich=$wp_query->post->ID;
$children = wp_list_pages("title_li=&child_of=$ich&echo=0");
//UND hat weitere Kinder
if ($children)
{
$parent1 = $wp_query->post->post_parent;
//MENUE 1 mit Geschwistern aktueller Seite (Kinder von $parent1)
echo "<ul class='topseiten'>";
wp_list_pages("title_li=&depth=1");
echo "</ul>";
echo "<ul class='unterseiten'>";
wp_list_pages("title_li=&child_of=$parent1&depth=1");
echo "</ul>";
$parent2 = $wp_query->post->ID;
//Menue 2 mit Kindern aktueller Seite ($parent2)
echo "<ul class='unterunterseiten'>";
wp_list_pages("title_li=&child_of=$parent2&depth=1");
echo "</ul>";
}
else
{
if(get_grandpapa(''))
{
$parent1 = get_grandpapa('');
//MENUE 1 mit Geschwistern aktueller Seite (Kinder von $parent1)
echo "<ul class='topseiten'>";
wp_list_pages("title_li=&depth=1");
echo "</ul>";
echo "<ul class='unterseiten'>";
wp_list_pages("title_li=&child_of=$parent1&depth=1");
echo "</ul>";
$parent2 = $wp_query->post->post_parent;
//Menue 2 mit Kindern aktueller Seite ($parent2)
echo "<ul class='unterunterseiten'>";
wp_list_pages("title_li=&child_of=$parent2&depth=1");
echo "</ul>";
}
else
{
$parent1 = $wp_query->post->post_parent;
//NUR Menue 1 mit Geschwistern aktueller Seite (Kinder von $parent1)
echo "<ul class='topseiten'>";
wp_list_pages("title_li=&depth=1");
echo "</ul>";
echo "<ul class='unterseiten'>";
wp_list_pages("title_li=&child_of=$parent1&depth=1");
echo "</ul>";
}
}
}
?>
而这个函数我不得不放在主题的functions.php中:
function get_grandpapa($page_id){
$current_page = get_page( $page_id );
if ($current_page->post_parent > 0){
//has at least a parent
$parent_page = get_page($current_page->post_parent);
if ($parent_page->post_parent > 0){
return $parent_page->post_parent;
}else{
return false;
}
}
return false; }