问题描述
我正在使用入门主题 _Underscores 和 Bootstrap 创建自定义 Wordpress 主题.
I am creating custom Wordpress theme using a starter theme _Underscores and Bootstrap.
我想修改 wp_nav_menu
以便它分配当前菜单项 .active
类而不是默认的 .current-menu-item
>.我需要这个才能使用 Bootstrap 中的 .active
类.
I would like to modify wp_nav_menu
so that it assigns the current menu item .active
class instead of the default .current-menu-item
. I need this in order to use .active
class from Bootstrap.
这是我所拥有的(额外的东西来自 WP,所以请向右滚动):
Here is what I have (extra stuff comes from WP so please scroll to the right):
<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 的情况下实现这一点.
I would prefer to achieve this without modifying ../wp-includes/nav-menu-template.php
and without using JS.
更新:我在发布此问题之前找到了答案,但由于我很难找到它,因此将其发布为 QA 以希望节省一些时间.
UPDATE: I found the answer just before posting this question, but since I had a rather hard time finding it, posting this as a QA to hopefully save someone some time.
推荐答案
只需将此代码粘贴到functions.php文件中即可:
Just paste this code into functions.php file:
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 的更多信息:
More on wordpress.org:
这篇关于如何添加“活动"类到 wp_nav_menu() 当前菜单项(简单的方法)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!