在 Wordpress 中,如何使用 wp_nav_menu 在所有子菜单 li 中添加按钮或 div?

这是我当前的代码:

<?php wp_nav_menu(array(
  'theme_location' => 'main_menu',
  'items_wrap'=>'%3$s',
  'container' => false
)); ?>

这是我想要的输出:
<li class="submenu">
  <a>Link 1</a>
  <ul>
    <li><a>Link 2</a></li>
  </ul>
  <button type="button">Click Me!</button>
</li>

最佳答案

所以,使用 Custom Walkers 有点麻烦,直到你理解它们。

下面的自定义 walker 代码应该可以满足您的需求。将此添加到您主题的 functions.php 文件中:

class Custom_Button_Walker extends Walker_Nav_Menu {
    // We only care about the "end level" part of the menu, where closing </ul> tags are generated
    public function end_lvl( &$output, $depth = 0, $args = array() ) {
        // This is from WP core code
        $indent = str_repeat("\t", $depth);
        // This line ensures we only add it on the proper level
        $button = (0 == $depth) ? "{$indent}<button type=\"button\">Click Me!</button>\n" : '';
        // This line is modified to include the button markup
        $output .= "{$indent}</ul>\n{$button}";
    }
}

要使用自定义 walker,请像这样修改您的 wp_nav_menu 调用:
wp_nav_menu( array(
    'theme_location' => 'main_menu',
    'items_wrap'     =>'%3$s',
    'container'      => FALSE,
    'walker'         => new Custom_Button_Walker()
));

关于php - 在 Wordpress 中更改子菜单换行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39089597/

10-12 21:40