我的WordPress主题带有一个walker_Nav_menu。我试图创建多个Walker_Nav_menu,所以我复制了它:
class atsnav_menu_1 extends Walker_Nav_menu {
// code....
}
和
class ats_nav_menu_2 extends Walker_Nav_menu {
// code....
}
然后在header.php文件中,我使用以下代码在不同部分显示菜单。
<?php
wp_nav_menu( array(
'theme_location' => 'navbar',
'container' => false,
'menu_class' => '',
'fallback_cb' => '__return_false',
'items_wrap' => '<ul id="%1$s" class="darkmenu">%3$s</ul>',
'depth' => 2,
'walker' => new ats_nav_menu_1()
) );
?>
<?php
wp_nav_menu( array(
'theme_location' => 'navbar',
'container' => false,
'menu_class' => '',
'fallback_cb' => '__return_false',
'items_wrap' => '<ul id="%1$s" class="sidemenu">%3$s</ul>',
'depth' => 2,
'walker' => new ats_nav_menu_2()
) );
?>
但这仅在我仅使用两种之一时有效-ats_nav_menu_1或ats_nav_menu_2。如果我同时添加了它们,那么它们都不起作用。 是否可以在WordPress中做到这一点,或者我在这里错过了什么?请告诉我。
我的目标是在同一页面上以垂直和水平显示相同的菜单,并在级别和其他方面进行不同的自定义。
答案 0 :(得分:0)
我找到了答案。代码缺少菜单ID参数'menu_id' => ''
,我将其添加到其中一个,如下所示:
<?php
wp_nav_menu( array(
'theme_location' => 'navbar',
'container' => false,
'menu_id' => 'mobilenav',
'menu_class' => '',
'fallback_cb' => '__return_false',
'items_wrap' => '<ul id="%1$s" class="sidemenu">%3$s</ul>',
'depth' => 2,
'walker' => new ats_nav_menu_2()
) );
?>
解决了。