WP_NAV_MENU()标记自定义帖子类型的当前项目祖先

时间:2012-07-21 作者:Lisa

This solution 几乎是我想要的。

唯一的问题是,我的菜单设置如下:

Menu item 1
Menu item 2
   Custom post type 1
   Custom post type 2
   Custom post type 3
Menu item 3
使用我提到的解决方案,将标记“current\\u url”添加到我所在的自定义帖子类型(“自定义帖子类型1”)的子菜单中。但我希望它在“菜单项2”中添加一个“current\\u menu\\u item”(或其他内容)。

有什么办法吗?

2 个回复
SO网友:Howdy_McGee

我做了以下工作,如果你有许多帖子类型,可能会很长,但是请随意编辑:

/** Edit Nav Menu calsses **/
function custom_wp_nav_classes($classes, $item){
    global $post;
    $page_blog = get_option(\'page_for_posts\');

    if(is_tax(\'my_taxonomy_name_here\') || is_singular(\'my_post_type_name_here\')){

        /** Remove Active Class from Blog **/
        if($item->object_id == $page_blog)
            $classes = array_filter($classes, "remove_parent");

        /** Page ID of what you want to be active **/
        if($item->object_id == 12)
            $classes[] = \'current_page_parent\';
    }

    return $classes;
}
add_filter(\'nav_menu_css_class\' , \'custom_wp_nav_classes\' , 10 , 2);

// Remove Active Class from Blog when viewing CPTs
function remove_parent($var){
    if ($var == \'current_page_parent\' || $var == \'current-menu-item\' || $var == \'current-page-ancestor\') { return false; }
    return true;
}

SO网友:Joshua Abenazer

WordPress通过添加current_page_ancestor 和/或current_page_parent 对父项初始化。尝试将这些类设置为类似current_menu_item.

结束

相关推荐

如何让我的自定义帖子类型出现在NAV-menus.php‘Menu’中?

我的自定义帖子类型有点问题。我可以在我的主题中很好地创建它们,但我无法让它们显示在“菜单”屏幕中。。。至少在默认情况下不是这样。我曾尝试在代码中添加菜单和UI标志(见下文),但没有成功。有趣的是,当我启用自定义帖子类型UI插件时,自定义帖子类型在“菜单”屏幕中显示良好(有时)。这似乎向我暗示,我在某个地方遗漏了一个步骤,而且不知何故,自定义帖子类型UI插件设置了该标志,并允许我的自定义帖子类型和分类显示在导航菜单中。php“菜单”屏幕。编辑::以上位已回答。谢谢你,米洛。我应该在“屏幕选项”选项卡中打开它