我正在为我的学校创建一个网站Material Design for Bootstrap 以及NavWalker 给了我一些问题,我想更改下拉列表的元素,即ul
到div
. 我试图编辑NavWalker.
$output .= "\\n$indent<div class=\\" dropdown-menu dropdown-primary\\" aria-labelledby=\\"navbarDropdownMenuLink\\" >\\n";
我编辑了代码并替换了DIV而不是UL,但不知道如何关闭DIV。当我打开源代码时,它显示如下
<div class=" dropdown-menu dropdown-promary" aria-labelledby="navbarDropdownMenuLin*k" >
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-60"><a title="About Us" href="http://example.com/about/">About Us</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-63"><a title="Year Plan" href="http://example.com/year-plan/">Year Plan</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-64"><a title="Staff" href="http://example.com/staff/">Staff</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-65"><a title="Fee and Uniform" href="http://example.com/fee-and-uniform">Fee and Uniform</a></li>
</ul>
这破坏了我的导航栏!如果有人知道如何解决此问题,请提供帮助。这些是指向NavWalker的链接,也是我编辑过的链接。
文本文件中的原始NavWalker文件Original NavWalker
文本文件中的原始NavWalker文件The Modified One
SO网友:Jacob Peattie
您需要更换end_lvl
方法Walker_Nav_Menu
也这是您需要添加的内容:
public function end_lvl( &$output, $depth = 0, $args = array() ) {
if ( isset( $args->item_spacing ) && \'discard\' === $args->item_spacing ) {
$t = \'\';
$n = \'\';
} else {
$t = "\\t";
$n = "\\n";
}
$indent = str_repeat( $t, $depth );
$output .= "$indent</div>{$n}";
}
与原始版本相比,唯一的变化是
</ul>
已更改为
</div>