我正在为菜单创建一个自定义漫游器,我的代码如下:
<?php
class My_Walker extends Walker {
function start_lvl( &$output, $depth = 0, $args = array() ) {
$output .= "<nav>";
}
function end_lvl( &$output, $depth = 0, $args = array() ) {
$output .= "</nav>";
}
function start_el( &$output, $object, $depth = 0, $args = array(), $current_object_id = 0 ) {
$output .= "<li>My Item</li>"; //This is just a sample <li>
}
}
The
start_el
工作正常,但是
start_lvl
和
end_lvl
根本不起作用。
呈现的HTML如下所示:
为什么我的
start_lvl
和
end_lvl
不工作?
最合适的回答,由SO网友:Jacob Peattie 整理而成
您的菜单似乎没有任何级别。start_lvl
和end_lvl
用于子菜单包装器。菜单的外包装<ul
> 由定义items_wrap
的参数wp_nav_menu()
:
wp_nav_menu(
[
\'walker\' => new My_Walker(),
\'items_wrap\' => \'<nav id="%1$s" class="%2$s">%3$s</nav>\',
]
);