2012-09-18 49 views
0

我想清楚地说明这个问题:我想使用“外观>菜单”部分来管理主导航,并且能够将第一级子导航拉到放置在页面侧栏中(樱桃挑选,部分菜单)。我不想使用wp_list_pages或类似的东西。我希望能够从“外观”菜单中管理导航的两个方面。有没有办法将WordPress菜单用于页内子导航?

有没有一种简单的方法来做到这一点,而不是写我自己的步行者?

回答

0

您可以在外观>菜单中创建一个新菜单,并将其显示在您想要使用<?php wp_nav_menu(array('menu' => 'Project Nav')); ?>的任何位置。你当然需要改变'Project Nav'你的新菜单的名字。

对功能完整的信息可以在食品在这里找到:wp_nav_menu()

举例来说,如果你有一个名为子导航菜单菜单中,您可以使用:

<?php wp_nav_menu(array('menu' => 'Sub Nav Menu')); ?>

刚落在模板文件中需要显示菜单的整个php行,并且不要忘记将菜单的名称更改为新菜单的名称。

我希望这是你正在寻找的。如果没有,让我们知道,我们会让你朝着正确的方向前进。

+0

谢谢,但不是我正在寻找..我已经有一个“主导航”菜单设置..现在在子页面上,我想引用该菜单,樱桃只挑选侧栏中的子页面作为内部页面 – farinspace

+0

没问题。我想我不完全明白你想要做什么。 – AndyWarren

1

@ alibaster的解决方案工作,但确实需要多个导航菜单。如果你的目标是有从单一的菜单管理的所有菜单项,你可以使用绝对定位取决于您的布局:

.menu-item { 
    position:relative; 
} 
.menu-item .sub-menu { 
    display:none; 
} 
.current-menu-ancestor .sub-menu { 
    display:block; 
    position:absolute; 
    left:0; 
    top:100px; 
} 

您可以使用“步行者”的说法来定制你的wp_nav_menu调用的输出:

http://codex.wordpress.org/Function_Reference/wp_nav_menu#Using_a_Custom_Walker_Function

http://wp.tutsplus.com/tutorials/creative-coding/understanding-the-walker-class/

0

把任何你想要的这个小片段。我添加了“if”条件,因此如果您尚未为其分配菜单,则不会显示任何代码。

<?php 
if (has_nav_menu('sub-menu')) { 
wp_nav_menu(array( 
'theme_location' => 'sub-menu', 
)); 
} ?> 

名字“子菜单中的”可以改为任何你喜欢的,如果你想继续增加这些。更多关于它的信息http://codex.wordpress.org/Function_Reference/has_nav_menu

0

我完全理解你的问题 - 尽管此线程已旧。我想知道你在解决这个问题上是否取得了成功。

我一直都在看这个问题。我已经浏览了数百个伟大的WordPress主题,非常棒。但他们没有一个能很好地解决“边栏菜单”问题。 list_pages ..很好,但是让“活动父”不得不在侧边栏中显示菜单有一些巨大的好处 - 而不仅仅是在顶部。

我会继续研究这个。一种方法是使用wp_nav_menu两次,一个用于顶部,另一个用于侧边栏 - 使用相同的“菜单”。但是使用css隐藏当前不活动的顶层项目。不是最好的方式 - 但仍然..这是一种方式;)

+0

这就是我们现在正在做的事情,两次使用wp_nav_menu ..我们使用CSS来隐藏子菜单等......我们也使用自定义类来表示侧边栏和仅主要链接(这些可以是菜单编辑器中的每个链接添加)...另一种方法是简单地创建两个菜单并分别管理两个菜单 – farinspace