查看该帖子类型的单项时,将活动类添加到顶层菜单项

时间:2019-01-24 作者:mistertaylor

对于只有自定义帖子类型存档页面的顶级链接的菜单,如何添加.active 查看该职位类型的单一职位时,是否将其分类为顶级项目?

WPSE上有很多类似的问题(比如thisthis), 但似乎没有人能解决我的具体问题并利用.current-menu-item.current-menu-ancestor (和相关的)类,这些类不会出现在我的菜单上(因为我假设单个帖子不是菜单列表结构的一部分)。

我能想到的唯一方法是对照slug检查当前的帖子类型,但它感觉有点粗糙(并且不允许url重写等)。

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

使用@mrbenhenson链接中的一个答案的改编版本解决。

function custom_active_item_classes($classes = array(), $menu_item = false){            
global $post;
if ($menu_item->type == "post_type_archive" ) {
    $classes[] = ($menu_item->url == get_post_type_archive_link($post->post_type)) ? \'current-menu-item active\' : \'\';
}
return $classes;
}

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

SO网友:mrbenhenson

查看此链接,它将帮助您为自定义帖子类型添加类:https://gist.github.com/gerbenvandijk/5253921

相关推荐

Custom items for Menus

编辑菜单时,我发现可以添加5种类型的项目:自定义链接页面帖子类别标签是否可以添加自定义的?比如说,我想添加一个图像,或者一个搜索栏,或者其他什么。我是否可以添加新的菜单项类型,以呈现我为它们选择的代码?