Как удалить активный класс в активном подменю WordPress - PullRequest
0 голосов
/ 08 ноября 2019
<li id="menu-item-332" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-ancestor current-menu-parent menu-item-has-children menu-item-332">
    <a href="#" class="nav-link active">Pages</a>
    <ul class="sub-menu">
        <li id="menu-item-333" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-329 current_page_item menu-item-333">
            <a href="http://localhost/wordpress/our-team/" aria-current="page" class="nav-link active">
                Team
            </a>
        </li>
        <li id="menu-item-336" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-336">
            <a href="http://localhost/wordpress/team-single/">
                Team Single
            </a>
        </li>
        <li id="menu-item-463" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-463">
            <a href="http://localhost/wordpress/404">
                Error 404
            </a>
         </li>
    </ul>
</li>

Я сейчас активен на странице Команда . И команда это подменю. Мне нужен активный класс только для родительского меню, а не для подменю. Если я открываю подменю, он добавляет nav-link active класс в родительское меню

<li id="menu-item-332" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-ancestor current-menu-parent menu-item-has-children menu-item-332">
    <a href="#" class="nav-link active">Pages</a>
</li>

, но также добавляет в подменю

<li id="menu-item-333" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-329 current_page_item menu-item-333">
    <a href="http://localhost/wordpress/our-team/" aria-current="page" class="nav-link active">
        Team
    </a>
</li>

, как я могу удалить класс nav-link active изподменю? Вот мой файл functions.php:

function add_class_to_href( $classes, $item ) {
    if ( in_array('current-menu-item', $item->classes) ) {
        $classes['class'] = 'nav-link active';
    }
    return $classes;
}
add_filter( 'nav_menu_link_attributes', 'add_class_to_href', 10, 2 );

function special_nav_class($classes, $item){
    if( in_array('current-menu-item', $classes) || in_array('current-menu-ancestor', $item->classes) ){
        $classes['class'] = 'nav-link active';
    }
    return $classes;
}

add_filter( 'nav_menu_link_attributes', 'special_nav_class', 10, 2 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...