我正在尝试在<ul>
使用自定义Walker标记WordPress菜单,扩展Walker_Nav_Menu
, 但是,我无法在网站前端显示任何自定义标记。
我没有收到任何错误,只是在使用wp_nav_menu
使用walker
参数。下面是我用来构建自定义Walker的代码和调用它的代码:
class BP_Walker_Nav_Menu extends Walker_Nav_Menu {
function start_lvl(&$output, $depth = 0, $args = array()) {
$output .= \'<input type="checkbox" id="responsive-nav-toggle" />
<label class="c-nav__collapsible-label" for="responsive-nav-toggle">
Explore this section... <i class="c-icon c-icon-down-open"></i>
</label>\';
}
}
以及
wp_nav_menu()
电话:
$args = array(
\'container\' => \'nav\',
\'container_class\' => \'c-nav c-nav--vertical c-nav--collapsible\',
\'menu_class\' => \'c-nav__collapser\',
\'theme_location\' => \'secondary\',
\'walker\' => new BP_Walker_Nav_Menu()
);
wp_nav_menu($args);
有人能帮忙吗?谢谢
SO网友:deadlyhifi
在这种情况下,您可以使用items_wrap
的参数wp_nav_menu.
$args = array(
\'container\' => \'nav\',
\'container_class\' => \'c-nav c-nav--vertical c-nav--collapsible\',
\'menu_class\' => \'c-nav__collapser\',
\'theme_location\' => \'secondary\',
\'items_wrap\' => menu_wrapper()
);
wp_nav_menu($args);
在被调用的函数中,可以使用
arguments 对于
%1$s
(id),
%2$s
(类别),以及
%3$s
(所有列表项)。
function menu_wrapper() {
$wrap = \'<input type="checkbox" id="responsive-nav-toggle" />\'
. \'<label class="c-nav__collapsible-label" for="responsive-nav-toggle">\'
. \'Explore this section… <i class="c-icon c-icon-down-open"></i>\'
. \'</label>\'
. \'<ul id="%1$s" class="%2$s">\'
. \'%3$s\'
. \'</ul>\';
return $wrap;
}