大家好,使用 Wordpress 框架的人通常我会创建一个扩展Walker_Nav_menu的自定义 walker, 以制作自定义 wordpress 菜单。我确实在 functions.php 中注册了菜单位置,我确实连接了菜单并创建了一个 custom_nav_walker 并且它起作用了。但是,我无法更改主 ul 根标记以使用 navwalker php 类在不使用 javascript 的情况下将一些内联代码放在那里。
所以导航菜单html是这样的。
<ul id="Root-tag-That-I-want-to-modify" class="vertical medium-horizontal menu dropdown" <!-- I WANT TO ECHO CODE HERE USING PHP --> >
<li id="menu-item-146" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home active menu-item-146">
<a href="http://Thelink">Item</a></li>
<li id="menu-item-147" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-ancestor current-menu-parent current_page_parent current_page_ancestor menu-item-has-children active has-dropdown menu-item-147"><a href="http://ThesecondLink">submeu</a>
<ul class="0 menu submenu is-dropdown-submenu first-sub vertical" data-submenu="" role="menu">
<li id="menu-item-153" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home active menu-item-153"><a href="http://anotherlink">submeu item</a>
</li></ul></li></ul>
我试图覆盖 Walker 类中的 start_lvl 函数:
function start_lvl( &$output, $depth = 0, $args = array() ) {
$indent = str_repeat( "\t", $depth );
$first = ($depth === 0) ? 'first-sub' : '';
$output .= "\n$indent<ul class=\"$depth menu submenu is-dropdown-submenu $first vertical\" data-submenu=\"\" role=\"menu\">\n";
}
在 ul 标记内打印 $depth 后,我发现这个 start_lvl 没有处理第一个 UL
在此类中,我可以在哪里覆盖主 UL 标记,我检查了 wordpress 调用 wp_nav_menu 数组,也许我错过了什么?我有兴趣在没有 Javascript 的情况下使用 PHP 来做这件事。