Active class to current link

时间:2013-10-11 作者:Neelam Khan

如何将活动类添加到用户正在查看的当前链接?我的主导航菜单中混合了页面和自定义帖子类型,我知道wordpress有.current_page_item 那是可以使用的,但当我尝试时,什么都没有发生。我对如何实现它有点困惑。目前,该网站的菜单正在使用:

<?php wp_nav_menu( array( \'theme_location\' => \'header-menu\' ) ); ?>
以及:

<?php wp_nav_menu( array(\'menu\' => \'Mobile Menu\' )); ?> - 对于移动状态。

1 个回复
SO网友:Chip Bennett

编辑两件事:

  1. wp_nav_menu() 还有输出.current_page_item, 向后兼容wp_page_menu().
  2. 其中the list item CSS classes added by wp_nav_menu(), 对于自定义帖子类型,列表项将具有CSS类.list-type-object-{slug}, 哪里{slug} 是CPT段塞。因此,您可以针对:.list-type-object-{slug}.current-list-item

原始答案

关键在于课程名称:.current_page_item. 那个class is added by wp_page_menu(), 鉴于wp_nav_menu() adds .current-list-item.

这意味着wp_nav_menu() 正在输出其后备菜单,而不是用户创建的自定义导航菜单。

确保:

通过注册自定义导航菜单主题位置register_nav_menu()register_nav_menus()wp_nav_menu() 包括theme_location 参数*而不是menu 参数, and that thetheme\\u位置passed towp\\U nav\\U菜单()matches the one defined inregister\\u nav\\u menu()/register\\u nav\\u menu()`

  • 至少有一个自定义导航菜单是通过Appearance -> Menustheme_location 传递给wp_nav_menu().

    寄存器

    function wpse117502_theme_setup() {
        register_nav_menus( array(
            \'primary\' => \'Primary\'
        ) );
    }
    add_action( \'after_setup_theme\', \'wpse117502_theme_setup\' );
    
    致电

    wp_nav_menu( array(
        \'theme_location\' => \'primary\'
    ) );
    
    定义

    用户创建菜单,例如“主菜单”

    分配

    用户将“主菜单”分配给"Primary" 主题位置

  • 结束