在 WordPress 上登录/注销时隐藏/显示菜单

Posted

技术标签:

【中文标题】在 WordPress 上登录/注销时隐藏/显示菜单【英文标题】:Hide/Show menus when logged in/out on WordPress 【发布时间】:2021-12-25 20:21:42 【问题描述】:

我的网站是用 WordPress 构建的,我目前有 3 个导航菜单

    主菜单 - “Main” 二级顶部菜单 - “玩家登录” 另一个二级顶部菜单 - “玩家已注销”

我已将以下脚本添加到我的 functions.php

function my_wp_nav_menu_args( $args = '' ) 

if( is_user_logged_in() )  
    $args['menu'] = "Player Logged-in";
 else  
    $args['menu'] = "Player Logged-out";
 
    return $args;

add_filter( 'wp_nav_menu_args', 'my_wp_nav_menu_args' );

它正在工作,唯一的问题是它用一个二级菜单替换了我的“主”菜单。 如果我希望在用户登录/退出时交替使用 2 个二级顶部菜单,并且无论用户是否登录,我都希望“主”菜单保持不变,我该怎么做?

谢谢

【问题讨论】:

【参考方案1】:

我遇到了这个问题。 我为我的主题(Avada)寻找了特定的菜单位置(top_navigation)并使用了这个

function wpc_wp_nav_menu_args( $args = '' ) 
if( is_user_logged_in())  
    if( 'top_navigation' == $args['theme_location'] )  
    //top_navigation is specific to Avada in my case
        $args['menu'] = 'Player Logged-in';
    
 else  
    if( 'top_navigation' == $args['theme_location'] )  
    //again, top_navigation is specific to Avada in my case
        $args['menu'] = 'Player Logged-out';
    
 
    return $args;

add_filter( 'wp_nav_menu_args', 'wpc_wp_nav_menu_args' );

【讨论】:

以上是关于在 WordPress 上登录/注销时隐藏/显示菜单的主要内容,如果未能解决你的问题,请参考以下文章