向WordPress导航项中添加额外的div

问题描述

更改wp菜单生成输出的最简单方法是什么

<ul class="primary-menu">
<li class="menu-item">
    <a href="">nav link</a>
    <ul class="sub-menu"></ul>
</li>
</ul>

<ul class="primary-menu">
<li class="menu-item">
    <div class="alignme">
        <button></button><a href=""></a><button></button>
    </div>
    <ul class="sub-menu"></ul>
</li>
</ul>

我需要这种“ helper div”,因为我必须以某种方式对齐三个元素,并且与li内可能的其他内容(例如子菜单)无关。

我正在使用认的wp_nav_menu(),作为第一次主题构建器,我不知道在哪里可以找到菜单的“设置”。你知道我应该仔细看看吗?

解决方法

在wp_nav_menu“新的Add_Div_Walker”中添加沃克类。检查我下面的代码。

$menu = array(
    'theme_location'  => 'primary','items_wrap'      => '<ul id="%1$s" class="%2$s">%3$s</ul>','walker'          => new Add_Div_Walker
);
wp_nav_menu( $menu );

// add this below code in your functions.php file.
class Add_Div_Walker extends Walker_Nav_Menu {
    function start_lvl( &$output,$depth = 0,$args = array() ) {
        $indent = str_repeat("\t",$depth);
        $output .= "\n$indent<div class='alignme'>
            <button></button><a href=''></a><button></button>
        </div><ul class='submenu'>\n";
    }
    function end_lvl( &$output,$depth);
        $output .= "$indent</ul>\n";
    }
}