根据Body类将类添加到菜单项

时间:2013-11-17 作者:Stuart Robson

如果body类是post-type archive team,我需要将当前菜单项的类添加到id为#menu-item-127的li中

我可以用jQuery实现这一点-

$(function(){
    if ($(\'body\').hasClass(\'post-type-archive-team\')) {
        $(\'#menu-item-127\').addClass(\'current-menu-item\');
    }
});
但在jQuery加载之前,需要使用它来实现其他功能。

如果我可以用PHP实现这一点,有什么想法吗?

提前感谢

1 个回复
SO网友:Joey Yax

使用nav_menu_css_class() 滤器以下函数将当前菜单项类添加到由其slug标识的页面。你可以

更新$cpt_name$menu_item_id 反映设置的变量。

add_filter( \'nav_menu_css_class\', \'nav_parent_class\', 10, 2 );

function nav_parent_class( $classes, $item ) {
    $cpt_name = \'team\';
    $menu_item_id = 127; // id of menu item to add current-menu-item class to

    if ( $cpt_name == get_post_type() && is_archive() && ! is_admin() ) {
        // remove any active classes from nav (blog is usually gets the currept_page_parent class on cpt single pages/posts)
        $classes = array_filter($classes, ($class == \'current_page_item\' || $class == \'current_page_parent\' || $class == \'current_page_ancestor\'  || $class == \'current-menu-item\' ? false : true ));

        // check if slug matches menu item id
        if( $item->ID == $menu_item_id ) {
            $classes[] = \'current-menu-item\';
        }
    }

    return $classes;
}

结束

相关推荐

自定义查询提要的自定义重写规则(URL中的Query_var查询字符串)?

问题已更新如果我想显示属于类别和自定义分类法、类别和标记、自定义分类法和标记的帖子(或帖子提要),我可以使用查询变量作为URL中的查询字符串。但我想先美化URL,如下所示:example.com/?category_name=main&channel=tech to example.com/main/channel/tech/example.com/?category_name=main&channel=tech&feed=rss2 to example.com/main/chan

根据Body类将类添加到菜单项 - 小码农CODE - 行之有效找到问题解决它

根据Body类将类添加到菜单项

时间:2013-11-17 作者:Stuart Robson

如果body类是post-type archive team,我需要将当前菜单项的类添加到id为#menu-item-127的li中

我可以用jQuery实现这一点-

$(function(){
    if ($(\'body\').hasClass(\'post-type-archive-team\')) {
        $(\'#menu-item-127\').addClass(\'current-menu-item\');
    }
});
但在jQuery加载之前,需要使用它来实现其他功能。

如果我可以用PHP实现这一点,有什么想法吗?

提前感谢

1 个回复
SO网友:Joey Yax

使用nav_menu_css_class() 滤器以下函数将当前菜单项类添加到由其slug标识的页面。你可以

更新$cpt_name$menu_item_id 反映设置的变量。

add_filter( \'nav_menu_css_class\', \'nav_parent_class\', 10, 2 );

function nav_parent_class( $classes, $item ) {
    $cpt_name = \'team\';
    $menu_item_id = 127; // id of menu item to add current-menu-item class to

    if ( $cpt_name == get_post_type() && is_archive() && ! is_admin() ) {
        // remove any active classes from nav (blog is usually gets the currept_page_parent class on cpt single pages/posts)
        $classes = array_filter($classes, ($class == \'current_page_item\' || $class == \'current_page_parent\' || $class == \'current_page_ancestor\'  || $class == \'current-menu-item\' ? false : true ));

        // check if slug matches menu item id
        if( $item->ID == $menu_item_id ) {
            $classes[] = \'current-menu-item\';
        }
    }

    return $classes;
}

相关推荐

如何读取WordPress$Query关联数组(散列)键的值

WordPress编程新手(来自更为传统的环境),并试图了解其一些“独特”特性。我们的网站上有一个目录页,此代码驻留在functions.php, 如果条件为true,则调整结果。if( $query->is_post_type_archive( \'directory\' ) ){ ...//do stuff } 我想知道如何获取is_post_type_archive 这就是“目录”当我对值使用测试时。。。var_dumb($query->is_post