替换菜单中的CURRENT_PAGE_ITEM类

时间:2013-03-17 作者:user1983017

我想用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 );
    }
} 

2 个回复
最合适的回答,由SO网友:Mridul Aggarwal 整理而成

在显示元素函数的顶部添加此行:

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;
}

SO网友:webninjataylor

搜索当前的\\u page\\u项目。我在帖子模板中找到了四倍的总数。php和nav菜单模板。php。然后将其替换为active.

结束

相关推荐

Register_nav_menus()不会注册菜单

请帮助进行菜单注册:我遵循了这个指南(http://codex.wordpress.org/Navigation_Menus)一步一步。向函数中添加了以下代码。php:function register_my_menus() { register_nav_menus( array(\'header-menu\' => __( \'Header Menu\' ) ) ); } add_action( \'init\', \'regist