3级Wordpress导航问题

时间:2013-05-10 00:36:14

标签: php wordpress navigation

我仍然在这个愚蠢的导航菜单中鬼混。我们的想法是,当您第一次进入页面时,会列出顶级页面,当单击其中一个页面时,第二级菜单会显示在其下方,并显示所有选定页面子页面,并且当其中一个页面被单击时所选第二级页面的第3级页面显示在第二级页面下方。

我曾尝试以各种方式进行gewt,我甚至试图建立一个会话存储来记住一些部分但是我无法找到一个好的解决方案。

这是我到目前为止所做的:

<?php
wp_nav_menu(array(
    'sort_column' => 'menu_order',
    'theme_location' => 'primary-menu'
));// Prints the primary top level menu
$level = count($post->ancestors);
echo $level;// Just for testing purposes
if ($post->post_parent){
    $children = wp_list_pages("title_li=&child_of=" . $post->post_parent . "&echo=0&depth=1");
     $grandchildren = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0');
}
else{
    $children = wp_list_pages("title_li=&child_of=" . $post->ID . "&echo=0&depth=1");
}
if ($children) {
    echo $children;
}
if ($grandchildren){
    echo $grandchildren; 
}
?>

这是我遇到的问题。它的工作方式是单向的,所以如果我点击顶层显示第二级,如果我点击第二级,则会出现第3级,但是当我点击第3级时,第二级会消失。

这让我疯了!我现在花了一天时间阅读所有关于get_post get_children等等的内容。

谢谢,

C

1 个答案:

答案 0 :(得分:0)

这是我的菜单解决方案,包含子菜单和子菜单......等等。

我这样称呼菜单:

 <?php $defaults = array(
'theme_location'  => '',
'menu'            => 'TopMenu', 
'container'       => 'ul', 
'container_class' => 'topmenu-{topmenu slug}-container', 
'container_id'    => 'topmenu',
'menu_class'      => 'topmenu', 
'menu_id'         => 'topmenu-{topmenu slug}[-{increment}]',
'echo'            => true,
'fallback_cb'     => 'wp_page_menu',
'before'          => '',
'after'           => '',
'link_before'     => '',
'link_after'      => '',
'items_wrap'      => '<ul id="%1$s" class="%2$s">%3$s</ul>',
'depth'           => 0,
'walker'          => ''

); ?&GT;

  

此菜单使用简单的topmenu类。好的,这是可以根据需要定制的CSS。

.topmenu{
    border:none;
    border:0px;
    margin:0px;
    padding:0px 0px 0px 10px;
    font-family:Arial, serif;
    font-size:10px;
    list-style-type:none;

    }
.topmenu ul{
    height:20px;
    list-style:none;
    margin:0;
    padding:0;

     }
.topmenu li{
    float:left;
    padding:0px;
    list-style-type:none;

    }
.topmenu li a{
    background-color:#000000;
    color:#6699CC;
    display:block;
    line-height:20px;
    margin:0px;
    padding:0px 10px;
    text-align:center;
    text-transform:uppercase;
    letter-spacing:-1px;
    text-decoration:none;
    list-style-type:none;
    border-right:1px solid #666666;
    }
    .topmenu li:first-child a { border-left: none; }
    .topmenu li:last-child a{ 
    padding-right:0;
    border-right:none;

    }

    .topmenu li a:hover {
    color:#00CCFF;
    text-decoration:none;
    list-style-type:none;
    }

我希望这会对你有所帮助。