个性化阅读
专注于IT技术分析

不同用户角色的不同菜单

我试图根据用户角色显示两个不同的菜单。

我使用以下代码(在functions.php中)设置了一个名为”客户端”的新角色:

add_role( 'client', 'Client', array(
    'read' => true, ) 
);

使用此代码, 我有两个不同的菜单(在functions.php中):

function register_my_menus() {
  register_nav_menus(
    array(
  'client-navigation' => __( 'Client Navigation' ), 'staff-navigation' => __( 'Staff Navigation' ), )
  );
}
add_action( 'init', 'register_my_menus' );

这是我试图用来调用”客户端导航”或”人员导航”的代码(在header.php中):

<?php
        if (current_user_can('client')){
            //menu for client role
             wp_nav_menu( array('theme-location' => 'client-navigation' ));

        }else{
            //default menu
             wp_nav_menu( array('theme-location' => 'staff-navigation' ));
        }
?>

我还尝试过在wp_nav_menu之前添加” echo”并将主题位置更改为菜单, 并使用菜单名称, 但它始终显示人员导航菜单。


#1


要使用current_user_can, 你应该添加自己的自定义功能。

无需执行此操作, 而是在寻找角色时, 从此处改编的以下功能可以完成工作:

function check_for_clients() {
    global $current_user;

    $user_roles = $current_user->roles;
    $user_role = array_shift($user_roles);

    return ($user_role == 'client');
}

然后在你的header.php文件中(请注意, 你在theme_location中有一个错字):

if ( check_for_clients() ){
     wp_nav_menu( array('theme_location' => 'client-navigation' ));

} else {
     wp_nav_menu( array('theme_location' => 'staff-navigation' ));
}
赞(0)
未经允许不得转载:srcmini » 不同用户角色的不同菜单

评论 抢沙发

评论前必须登录!