0

我想把这个问题说清楚:我想使用“外观>菜单”部分来管理主导航,并且还能够拉出第一级子导航以放置在页面侧边栏(樱桃挑选,部分菜单)。我不想使用wp_list_pages或类似的。我希望能够从“外观 > 菜单”管理导航的两个方面。

有没有一种简单的方法可以在不编写我自己的助行器的情况下做到这一点?

4

4 回答 4

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

您可以使用 'walker' 参数来自定义 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/

于 2012-09-18T20:41:46.393 回答
0

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

有关该功能的完整信息可以在此处的法典中找到:wp_nav_menu()

例如,如果您有一个名为 Sub Nav Menu 的菜单,您将使用:

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

只需将整个 php 行放在您希望菜单出现的模板文件中,不要忘记将菜单名称更改为新菜单的名称。

我希望这就是你要找的。如果没有,请告诉我们,我们会让您朝着正确的方向前进。

于 2012-09-18T18:28:04.990 回答
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

于 2012-09-18T22:58:39.940 回答
0

我完全理解你的问题 - 即使这个线程很旧。我想知道您是否成功解决了这个问题。

我一直看到这个问题。我看过数百个很棒的 Wordpress 主题,真的很棒。但是他们都没有很好地解决“侧边栏菜单”。list_pages.. 很好,但是让“活跃的父母”不得不在侧边栏中显示菜单有一些巨大的好处——而不仅仅是在顶部。

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

于 2013-10-02T06:45:23.540 回答