我将容器从我的菜单从DIV更改为nav,但我也想摆脱class属性。我怎么做的?这似乎不起作用......
<?php wp_nav_menu( array("container" => "nav", "container_class" => '' ) ); ?>
答案 0 :(得分:1)
如果我正确关注,您是否可以转到存储wp_nav_menu()函数的源文件,该函数位于wp-includes / nav-menu-template.php中并从那里删除代码?
在orignal文件中查找此默认值部分
$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' => '' );
如果你看到你的标签有id =“%1 $ s”和class =“%2 $ s”,请删除课程位,我认为这样可以解决你的问题。
我一直在寻找同样的东西,发现这篇文章和Killer_Alien_Monk的解决方案,但决定必须有一种方法来修改orignal功能:)
答案 1 :(得分:1)
我找到的最佳解决方案是手动创建容器,如下所示:
<nav id="headerMenu"><?php wp_nav_menu(array(
'theme_location' => 'header-menu',
'container' => ''
)); ?></nav>
这样,Wordpress就无法向容器添加类。
答案 2 :(得分:0)
如果我理解你的问题,那么删除像这样的“container_class”选项应该有效:
<?php wp_nav_menu( array("container" => "nav" )); ?>
编辑:我只是检查文档,如果没有conatainer_class
,它会用一些默认类替换它。搜索谷歌一段时间后,我找不到任何可以过滤掉你的输出的东西,所以我只是定义了一个自定义函数。您在functions.php中写下此内容,然后在wp_nav_menu()
调用此函数custom_wp_nav_menu()
而不是在同一个地方调用
function custom_wp_nav_menu()
{
$options= array( 'theme_location' => 'header-menu', // Setting up the location for the main-menu, Main Navigation.
'menu_class' => 'dropdown', //Adding the class for dropdowns
'container_id' => 'navwrap', //Add CSS ID to the containter that wraps the menu.
'fallback_cb' => 'wp_page_menu',
'container_class' => " ",
'echo' => false
);
$nav = wp_nav_menu($options);
$nav = str_replace( 'class=" "', '', $nav );
echo $nav;
} // function
答案 3 :(得分:0)
结束通过编辑位于 wp-includes / nav_menu_template.php 的几行,如容器的第191行来解决问题:
$class = $args->container_class ? ' class="' . esc_attr( $args->container_class ) . '"' : ' class="menu-'. $menu->slug .'-container"';
$class = $args->container_class ? ' class="' . esc_attr( $args->container_class ) . '"' : '';
答案 4 :(得分:0)
我认为您可以使用item_wrap
参数,默认item_wrap
参数为<ul id="%1$s" class="%2$s">%3$s</ul>
所以你可以使用这样的东西:
<?php wp_nav_menu( array("container" => "nav", "items_wrap" => '<ul>%3$s</ul>' )); ?>
答案 5 :(得分:-2)
你嫁给了使用php的想法吗?如果没有,jQuery的removeClass方法似乎是一个可能的候选者,如果你试图动态删除该类。