2012-12-24 84 views
0

我在使用WordPress的第三级导航菜单时遇到问题。我使用下面的代码输出3级导航:WordPress - 第三级菜单/导航

<?php $parents = wp_list_pages("title_li=&depth=1&echo=0&sort_column=menu_order"); 
     if($post->post_parent) { 
      $siblings = wp_list_pages("title_li=&depth=1&child_of=".$post->post_parent."&echo=0&sort_column=menu_order"); 
      $children = wp_list_pages("title_li=&depth=1&child_of=".$post->ID."&echo=0&sort_column=menu_order"); 
     } else { 
      $children = wp_list_pages("title_li=&depth=1&child_of=".$post->ID."&echo=0&sort_column=menu_order"); 
      $siblings = array(); 
     } 
     if($parents) { ?> 
      <ul class="topseiten"> 
      <?php echo $parents; ?> 
      </ul> 
     <?php } 
     if($siblings) { ?> 
      <ul class="unterseiten"> 
      <?php echo $siblings; ?> 
      </ul> 
     <?php } 
     if($children) { ?> 
      <ul class="unterunterseiten"> 
      <?php echo $children; ?> 
      </ul> 
     <?php } ?> 

当我点击菜单上的1 - >菜单2是越来越显示 - >确定

当我点击菜单2 - >菜单3正在显示,你看菜单1 - >确定

当我点击菜单3 - >菜单2被隐藏!

有人可以帮我吗?会真的很感激它!

谢谢圣诞快乐! 凯文

回答

0

好更换3号线,发现了另一个解决方案,现在完美的作品:

<?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>"; 
      } 
    } 
} 

?> 

而且这个功能我不得不把在主题的功能。 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; } 
0

尝试使用下面的代码

$current_parent = $post->post_parent; 
$parent_post = get_post($current_parent); 
$siblings = wp_list_pages("title_li=&depth=1&child_of=".$parent_post->post_parent."&echo=0&sort_column=menu_order"); 
+0

感谢您的答案弗拉基米尔。可悲的是,它不适合你的线路。 :-( –

+0

不幸的是我无法测试代码,因为我没有你的数据。你看到了哪些兄弟姐妹? – Vladimir