我正在使用入门主题 _Underscores 和 Bootstrap 创建自定义 Wordpress 主题。
我想修改wp_nav_menu
以便它分配当前菜单项.active
类而不是默认类.current-menu-item
。我需要这个才能使用.active
来自 Bootstrap 的类。
这是我所拥有的(额外的内容来自 WP,所以请滚动到右侧):
<ul id="menu-main-menu" class="nav navbar-nav">
<li id="menu-item-14" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-13 current_page_item menu-item-14"><a href="">item1</a></li>
<li id="menu-item-12" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12"><a href="">item2</a></li>
</ul>
这就是我需要的:
<ul id="menu-main-menu" class="nav navbar-nav">
<li id="menu-item-14" class="active menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-13 current_page_item menu-item-14"><a href="">item1</a></li>
<li id="menu-item-12" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12"><a href="">item2</a></li>
</ul>
我更愿意在不修改的情况下实现这一点../wp-includes/nav-menu-template.php
并且不使用 JS。
更新:我在发布这个问题之前找到了答案,但由于我很难找到它,因此将其作为质量检查发布,希望可以节省一些时间。
只需将此代码粘贴到functions.php文件中:
add_filter('nav_menu_css_class' , 'special_nav_class' , 10 , 2);
function special_nav_class ($classes, $item) {
if (in_array('current-menu-item', $classes) ){
$classes[] = 'active ';
}
return $classes;
}
有关 wordpress.org 的更多信息:
- 在 WordPress 3.0 菜单中突出显示当前页面 https://wordpress.org/support/topic/highlight-current-page-in-wordpress-30-menus
- Adding .active类到活动菜单项 https://wordpress.org/support/topic/adding-active-class-to-active-menu-item?replies=8
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)