2013-05-10 6 views
0

Я все еще обманываюсь этим глухим навигационным меню. Идея состоит в том, что при первом просмотре страниц страницы верхнего уровня перечислены, когда один из них щелкнут, под ним появляется меню второго уровня со всеми выделенными страницами страниц и когда на одной из этих страниц нажимают все Страницы третьего уровня с выбранной страницы второго уровня отображаются ниже страниц второго уровня.3 Проблемы с навигацией по Wordpress

Я попытался сделать это различными путями, даже попытался создать магазин сеансов, чтобы запомнить некоторые части, но я просто не могу найти подходящее решение.

Вот что я сделал до сих пор:

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

Вот проблема, которую я имею. Он работает в одном направлении, поэтому, если я нажимаю на верхний уровень, появляется второй уровень, если я нажимаю второй уровень, появляется третий уровень, но когда я нажимаю третий уровень, второй уровень исчезает.

Это сводит меня с ума! Я провел целый день на это сейчас читает все о get_post get_children и т.д. и т.д. и т.п.

Спасибо,

C

+0

вы можете использовать jQuery mega menu plugin для этого и все, что хорошо. –

ответ

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'   => '' 

); ?>

Это меню использует простой класс 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; 
    } 

Я надеюсь, что это вам поможет.

+0

Хорошо, я попробую это, когда вернусь к работе. Благодаря! – Charlie

Смежные вопросы