web-dev-qa-db-ja.com

メニューのcurrent_page_itemクラスを置き換えます

メニューの下のクラスをactiveクラスに置き換えます。

.current-menu-item

そして

.current_page_item

私はすでに子メニューにdropdownクラスを追加するメニューコールバックを使用しています。

class foundation_navigation extends Walker_Nav_Menu {

function start_lvl(&$output, $depth) {
    $indent = str_repeat("\t", $depth);
    $output .= "\n$indent<a href=\"#\" class=\"dropdown-toggle\"><span> </span></a><ul class=\"dropdown\">\n";
}

function display_element( $element, &$children_elements, $max_depth, $depth=0, $args, &$output ) {
    $id_field = $this->db_fields['id'];
    if ( !empty( $children_elements[ $element->$id_field ] ) ) {
        $element->classes[] = 'has-dropdown';
    }
        Walker_Nav_Menu::display_element( $element, $children_elements, $max_depth, $depth, $args, $output );
    }
} 
3
user1983017

表示要素関数の先頭にこの行を追加します。

add_filter('nav_menu_css_class', 'add_active_class_to_nav_menu');

表示要素関数の最後にこの行を追加します。

remove_filter('nav_menu_css_class', 'add_active_class_to_nav_menu');

この関数をあなたのテーマのどこかに追加してくださいfunctions.php

function add_active_class_to_nav_menu($classes) {
    if (in_array('current-menu-item', $classes, true) || in_array('current_page_item', $classes, true)) {
        $classes = array_diff($classes, array('current-menu-item', 'current_page_item', 'active'));
        $classes[] = 'active';
    }
    return $classes;
}
3
Mridul Aggarwal

Current_page_itemを検索します。 post-template.phpとnav-menu-template.phpで合計4回見つかりました。それを active に置き換えます。

0
webninjataylor