登录时的不同菜单

Different menu when logged in

所以我正在创建一个 wordpress 插件,但我遇到了问题。 我希望登录用户比访客看到更多页面。

我认为拥有 2 个不同的菜单是最简单的,这样用户也可以自己编辑它。

现在我运行遇到了问题。我创建了 2 个菜单(用户菜单和访客菜单) 来宾菜单是我的主菜单。

现在我进行了一些谷歌搜索,偶然发现了这段代码:

function customMenu(){
    if( is_user_logged_in() ) { 
        $args['menu'] = 'User-Menu';
    }
    return $args;
}
add_filter( 'wp_nav_menu_args', 'customMenu' );

不幸的是,这导致我的菜单完全消失了。 代码有问题吗?我仔细检查了名称(空格、大写字母等),但找不到任何东西。 我也尝试了菜单项 ID,但它也不起作用。

上面这段代码是正确的方法吗?如果是这样,那里的错误是什么? 如果不是,从插件(不是主题!)做到这一点的正确方法是什么?

过滤器采用现有变量并对其进行修改,因此它应该是您函数的参数:

function customMenu($args){
    if( is_user_logged_in() ) { 
        $args['menu'] = 'User-Menu';
    }
    return $args;
}
add_filter( 'wp_nav_menu_args', 'customMenu' );