WordPress设置登陆用户和未登陆用户显示不同菜单

摘要

网站头部有一个导航菜单,想在这个位置给登陆和未登陆用户分别显示不同的菜单项,该如何实现呢?WordPress给我们提供了wp_nav_menu_args这个filter,可以在菜单显示之前更改wp_nav_menu函数的参数

 

1、创建两个菜单

先进入WordPress后台 - 外观 - 菜单中, 创建两个菜单,菜单名称分别设置成:已登陆未登录,并给这两个菜单分配不同的菜单项。

 

2、确定菜单位置名称

开始下一步前,我们需要知道菜单位置名称,也就是theme_location参数的值,用文本编辑器打开当前主题目录中的header.php,搜索wp_nav_menu一般都能找到这个值,代码一般长这样:

  1. // theme_location后面的 top 就是我们要找的值
  2. wp_nav_menu( array( 'theme_location' => 'top', 'menu_id' => 'top-menu') );

3、添加执行代码

在当前主题的functions.php添加以下代码即可:

  1. function ludou_nav_menu_args($args = '') {
  2.    // 下面的top改成第2步获取到的菜单位置名称
  3.    if ($args['theme_location'] == 'top') {
  4.       if (is_user_logged_in()) {
  5.          $args['menu'] = '已登陆';
  6.       }
  7.       else {
  8.          $args['menu'] = '未登录';
  9.       }
  10.    }
  11.    return $args;
  12. }
  13. add_filter('wp_nav_menu_args', 'ludou_nav_menu_args');

[/youziku]

NaMei
  • 版权声明: 本文源自 露兜博客, 于2年前,由整理发表,共 642字。
  • 原文链接:点此查看原文

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:4   其中:访客  2   博主  2

  1. hotoown 1

    用不了,没法用

    • NaMei namei

      @hotoown 具体是什么个情况呢

      • hootown 1

        @namei 您好,我设置好了,我不会设置导致的,不好意思啦。谢谢您的代码!

        • NaMei namei

          @hootown 我只是个搬运工,欢迎常来溜达