Wordpress 从菜单容器中删除该类

Wordpress 从菜单容器中删除该类,wordpress,Wordpress,我把菜单中的容器从DIV改为nav,但我也想去掉class属性。我该怎么做?这似乎不起作用 <?php wp_nav_menu( array("container" => "nav", "container_class" => '' ) ); ?> 您是否已经接受了使用php的想法?如果不是,如果您试图动态删除该类,jQuery的removeClass方法似乎是一个很有可能的候选方法。如果我理解您的问题,只需删除“container\u class”选项(如下所示)即

我把菜单中的容器从DIV改为nav,但我也想去掉class属性。我该怎么做?这似乎不起作用

<?php wp_nav_menu( array("container" => "nav", "container_class" => '' ) ); ?>


您是否已经接受了使用php的想法?如果不是,如果您试图动态删除该类,jQuery的removeClass方法似乎是一个很有可能的候选方法。

如果我理解您的问题,只需删除“container\u class”选项(如下所示)即可:

<?php wp_nav_menu( array("container" => "nav" )); ?>

如果我的理解正确,您是否可以转到存储wp_nav_menu()函数的源文件(位于wp includes/nav-menu-template.php中)并从中删除代码

在原始文件中查找此默认值部分

$defaults = array( 'menu' => '', 'container' => 'div', 'container_class' => '', 'container_id' => '', 'menu_class' => 'menu', 'menu_id' => '',
    'echo' => true, 'fallback_cb' => 'wp_page_menu', 'before' => '', 'after' => '', 'link_before' => '', 'link_after' => '', 'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>',
    'depth' => 0, 'walker' => '', 'theme_location' => '' );
$defaults=array('menu'=>'','container'=>'div','container\u class'=>'','container\u id'=>'','menu\u class'=>'menu','menu\u id'=>'',
'echo'=>true',fallback'=>'wp\u page\u menu','before'=>'','before'=>'','link\u before'=>'','link\u before'=>'','items\u wrap'=>'
    %3$s
”, “深度”=>0,“步行者”=>“,”主题位置“=>”;
如果您看起来有id=“%1$s”和class=“%2$s”的标记,请删除class位,我认为这将解决您的问题


我也在寻找同样的东西,找到了这篇文章和Killer_Alien_Monk的解决方案,但决定必须有一种方法来修改原始函数:)

最后通过编辑位于wp includes/nav_menu_template.php中的几行代码解决了这个问题

[原始来源]

[我的编辑]
我找到的最佳解决方案是手动创建容器,如下所示:

<nav id="headerMenu"><?php wp_nav_menu(array(
    'theme_location' => 'header-menu',
    'container' => ''
)); ?></nav>
<?php wp_nav_menu( array("container" => "nav", "items_wrap" => '<ul>%3$s</ul>' )); ?>


这样,Wordpress就无法将类添加到容器中。

我认为您可以使用
item\u-wrap
参数,默认的
item\u-wrap
参数是
    %3$s

所以你可以用这样的方法:

<nav id="headerMenu"><?php wp_nav_menu(array(
    'theme_location' => 'header-menu',
    'container' => ''
)); ?></nav>
<?php wp_nav_menu( array("container" => "nav", "items_wrap" => '<ul>%3$s</ul>' )); ?>


我没有嫁给php,但使用jQuery修改输出HTML似乎是一个浪费的想法。应该有一个方法来控制HTML的输出,而不是用jQuery“调优”它。如果我不写“container_class”,我会得到一个默认类,即“menu main container”,好的,我发现最简单的修复方法是://两个引号之间有一个空格。。。这只会打印。。。。在html中…我刚刚编写了上面的函数来从最终的html代码中过滤掉class=“”。解决方案比我希望的要“脏”一点。。。但是谢谢。
<?php wp_nav_menu( array("container" => "nav", "items_wrap" => '<ul>%3$s</ul>' )); ?>