3

在我的主题中使用wp_nav_menu时,我想为sub-menu包含子列表的项目更改 Worpdress 的默认类(dropdown以适应 Foundation 框架)。

我已经查看了有关该主题的这篇文章,但似乎无法使其正常运行。

在我的functions.php文件中,我插入了:

class My_Sub_Menu extends Walker_Nav_Menu {
  function start_lvl(&$output, $depth) {
    $indent = str_repeat("\t", $depth);
    $output .= "\n$indent<ul class=\"dropdown\">\n";
  }
}

在我的header.php文件中,我有:

<?php
    $defaults = array(
        'theme_location'  => 'header-nav',
        'menu_class'      => 'right',
        'walker'          => new My_Sub_Menu(),
        'container'       =>  false
    );
    wp_nav_menu( $defaults );
?>

但什么也没有发生。我是否误解了在哪里插入代码?

4

1 回答 1

10

是因为你没有end_lvl为你的指定一个class My_Sub_Menu extends Walker_Nav_Menu吗?

class My_Sub_Menu extends Walker_Nav_Menu {
  function start_lvl(&$output, $depth) {
    $indent = str_repeat("\t", $depth);
    $output .= "\n$indent<ul class=\"dropdown\">\n";
  }
  function end_lvl(&$output, $depth) {
    $indent = str_repeat("\t", $depth);
    $output .= "$indent</ul>\n";
  }
}
于 2013-10-31T11:33:43.460 回答