0

我正在使用下划线构建自定义 wordpress 主题,并希望在导航中添加两个 div。我知道我必须使用自定义 Walker,但我不确切知道如何以及我能找到的只是如何自定义列表项本身。但我所需要的只是将 div 放在生成的列表之上。

这就是我现在得到的:

<div class="menu-all-pages-container">
   <ul id="primary-menu" class="menu">
      <li>Menu item 1</li>
      <li>Menu item 1</li>
      ...etc
   </ul>
</div>

我想拥有的:

<div class="menu-all-pages-container">

<div id="mydiv"></div>
<div class="button"></div>

   <ul id="primary-menu" class="menu">
      <li>Menu item 1</li>
      <li>Menu item 1</li>
      ...etc
   </ul>
</div>

正如我所说,我认为我需要一个自定义 Walker 并自定义 start_el() 函数?但在那之后我迷路了..

提前致谢 :)

4

1 回答 1

0

您可以使用wp_nav_menu_items过滤器。尝试这个:

add_filter('wp_nav_menu','add_custom_nav_elements', 10, 1);
function add_custom_nav_elements( $nav ) {

    $elements = '<div id="mydiv"></div><div class="button"></div>';
    return $elements . $nav;
}

primary如果您只为菜单寻找添加元素,请尝试以下操作:

add_filter('wp_nav_menu','add_custom_nav_elements', 10, 2);
function add_custom_nav_elements( $nav, $args ) {

    $elements = '<div id="mydiv"></div><div class="button"></div>';

    if( $args->theme_location == 'primary' )
        $nav = $elements . $nav;

    return $nav;
}

并将其添加到您要添加菜单的位置:

<div class="menu-all-pages-container">
     <?php wp_nav_menu(array('theme_location' => 'primary')); ?>
</div>
于 2021-08-13T19:38:12.323 回答