在 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 上登录/注销时隐藏/显示菜单的主要内容,如果未能解决你的问题,请参考以下文章

如何在用户注销时隐藏侧边栏并在用户登录时显示侧边栏?

用户登录并重定向到主页后,如何在主页导航栏中隐藏登录链接并显示注销链接?

SwiftUI 在使用 Firebase 单击注销时隐藏 TabView

在菜单中使用 UserPro 登录和注销 WordPress

WordPress登录框显示/隐藏输入的密码

如何根据某人是不是使用 AngularJS 登录来隐藏和显示导航栏元素?