Wordpress - wp_nav_menu container_class不更改容器类

时间:2018-01-05 15:14:57

标签: wordpress wordpress-theming

我将arguments数组传递给标题,如下所示:

<nav class="header__social-menu">
  <?php
    $args = array(
      'theme_location'  => 'social-menu',
      'container'       => 'ul',
      'container_class' => 'header__social-list',
      'link_before'     => '<li class="header__social-item"><a href="#" class="header__social-link">',
      'link_after'      => '</a></li>',
    );
    wp_nav_menu( $args );
  ?>
</nav>

但容器是ul元素,并没有为它分配“header__social-list”类,而是改为使用类“menu”。

是否可以实际更改容器的类以便坚持使用BEM方法?

2 个答案:

答案 0 :(得分:1)

我能够通过添加另一个名为&#34; menu_class&#34;的文章解决它,所以代码现在看起来像这样:

<nav class="header__social-menu">
  <?php
    $args = array(
      'theme_location'  => 'social-menu',
      'container'       => 'ul',
      'container_class' => 'header__social-list',
      'menu_class' => 'header__social-list',
      'link_before'     => '<li class="header__social-item"><a href="#" class="header__social-link">',
      'link_after'      => '</a></li>',
    );
    wp_nav_menu( $args );
  ?>
</nav>

不确定我是否应该离开&#34; container_class&#34;那里的论点,但它正在使用&#34; menu_class&#34;。

答案 1 :(得分:1)

这就是wordpress文档中关于菜单的container参数的说法:

  

'container'(string)是否包装ul,以及包装它的内容。   默认'div'。

这就是包装已经生成的ulcontainer_class用于该包装,而不是ul本身。

但您可能希望改为使用items_wrap

  

'items_wrap'(字符串)如何包装列表项。默认是   带有id和class的ul。使用带编号的printf()格式   占位符。

另见https://developer.wordpress.org/reference/functions/wp_nav_menu/