跳至主要内容

博文

目前显示的是标签为“wordprees菜单”的博文

WordPress实现登陆用户和未登陆用户显示不同菜单

  目前有这样的需求:网站头部有一个导航菜单,想在这个位置给登录和未登录用户分别显示不同的菜单项,该如何实现呢?WordPress给我们提供了wp_nav_menu_args这个filter,可以在菜单显示之前更改wp_nav_menu函数的参数。具体我们可以这样实现: 1、创建两个菜单 先进入WordPress后台 – 外观 – 菜单中, 创建两个菜单,菜单名称分别设置成:已登录 和 未登录,并给这两个菜单分配不同的菜单项。 不懂设置的,可以参考视频教程:WordPress创建菜单 2、确定菜单位置名称 开始下一步前,我们需要知道菜单位置名称,也就是theme_location参数的值,用文本编辑器打开当前主题目录中的header.php,搜索wp_nav_menu一般都能找到这个值,代码一般长这样: // theme_location后面的 top 就是我们要找的值 wp_nav_menu ( array ( 'theme_location' => 'top' , 'menu_id' => 'top-menu' ) ); 如果你实在不懂代码,具体可以看视频教程提供的简便方法:确定菜单位置名称 3、添加执行代码 最后,在当前主题的functions.php添加以下代码即可: function ludou_nav_menu_args ( $args = '' ) { // 下面的top改成第2步获取到的菜单位置名称 if ( $args [ 'theme_location' ] == 'top' ) { if ( is_user_logged_in ()) { $args [ 'menu' ] = '已登录' ; } else { $args [ 'menu' ] = '未登录' ; } } return $args ; }   add_filter ( 'wp_nav_menu_args' , '