当前菜单项类不起作用

时间:2014-12-26 作者:Relax

当前菜单项类不适用于我的主题中的特定菜单,我的css代码为

.mainNav ul li a {
color: #686868;
font-size: 14px;
height: 38px;
line-height: 38px;
display: inline-block;
padding: 0 10px;
border-radius: 2px; 
}


.mainNav ul li.current-menu-item a,
.mainNav ul li.current-menu-item a:focus {
    background: #69bd43;
    color: #ffffff; 
}

.mainNav ul li a:hover {
    background: #69bd43;
    text-decoration: none;
    color: #ffffff;
}
。主导航ul li a:悬停

.主导航ul li a

正在工作

但是

.mainNav ul li。当前菜单项a。主导航ul li。当前菜单项a:焦点

不工作

请参见下面的屏幕截图

“天然食品”菜单中的当前菜单项

enter image description here

但不在“Books”菜单中工作

请参见下面的屏幕截图

enter image description here

在我的标题中。php

<nav class="mainNav">

            <?php 
                $args = array(
                    \'theme_location\' => \'primary\' 
                 );
            ?>  
            <ul class="container"><?php wp_nav_menu( $args ); ?></ul>               

        </nav><!-- End mainNav -->
以我的风格。css

/* Header */

.mainNav {
    background: #ffffff;
    margin-top: 45px;   
}

.mainNav ul li {
    display: inline-block;
}

.mainNav ul li a {
    color: #686868;
    font-size: 14px;
    height: 38px;
    line-height: 38px;
    display: inline-block;
    padding: 0 10px;
    border-radius: 2px;
}

.mainNav ul li.current-menu-item a,
.mainNav ul li.current-menu-item a:focus {
    background: #69bd43 !important;
    color: #ffffff; 
}

.mainNav ul li a:hover {
    background: #69bd43;
    text-decoration: none;
    color: #ffffff;
}

1 个回复
最合适的回答,由SO网友:vguerrero 整理而成

这是因为菜单项是使用页面“books”创建的,但当前显示的页面是post-type archive books(请参见正文和菜单项列表中的类)。你可以使用

function add_nav_menu_classes($classes, $item)
{
    if (is_post_type_archive(\'books\') && ($item->title == "Books")) {
       $classes[] = \'current-menu-item\';
    }

    return $classes;
}

add_filter(\'nav_menu_css_class\' , \'add_nav_menu_classes\' , 10 , 2);
放置在函数中。php强制在post-type archive books中向books页面菜单项添加“current menu item”类。

Edit:一种可能更好的方法是在nav菜单中实际插入post类型的存档,这样就不需要过滤器了。

结束

相关推荐

如何在我的插件中添加几个css或js文件

我想添加几个cs和js文件到我的插件在管理面板。我创建函数样式:function style() { wp_enqueue_style ( \'my-admin-theme\', plugins_url ( \'style.css\', __FILE__ ) ); wp_enqueue_script ( \'jquery\', \'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js\', array (), \'1