Wordpress:在前端检查自定义用户角色

Posted

技术标签:

【中文标题】Wordpress:在前端检查自定义用户角色【英文标题】:Wordpress: check for custom user role in frontend 【发布时间】:2015-12-20 11:16:55 【问题描述】:

我只是想在用户具有自定义用户角色时显示一些消息。它适用于本机用户角色,但不适用于自定义角色。这是我的代码:

<?php
$user_ID = get_current_user_ID();
$user = new WP_User( $user_ID );
$current_user = $user->roles[0];

if( $current_user == 'client' )
   echo 'hello client';
 else 
   // do nothing

?>

欢迎任何帮助,谢谢!

【问题讨论】:

【参考方案1】:

你可以试试这个:

if ( is_user_logged_in() )

    global $current_user;
    $user_role = $current_user->roles[0];

    if($user_role == 'client')
    
    // do something
    

is_user_logged_in()用于检查用户是否登录

【讨论】:

原来我在创建自定义用户角色时犯了一个错误。不过,你的方式更好/更干净,谢谢!【参考方案2】:

如果用户设置了多个角色,上述示例会出现问题,因为代码只检查用户设置的第一个角色。

理想情况下,您应该检查是否有任何用户角色与自定义角色匹配:

if ( is_user_logged_in() ) 
    global $current_user;

    if( in_array('YOUR_CUSTOM_ROLE',  $current_user->roles) ) 
        echo 'User has Custom Role';
     else 
        echo 'User does not have Custom Role';
    

【讨论】:

以上是关于Wordpress:在前端检查自定义用户角色的主要内容,如果未能解决你的问题,请参考以下文章

WordPress:具有自定义角色的用户无法访问 wp-admin

PHP Wordpress添加自定义用户角色

带有upload_files true但edit_post false的Wordpress自定义用户角色,我如何删除和编辑媒体?

wordpress自定义文章类型capability_type和capabilities参数说明

Wordpress 添加自定义角色以及删除默认角色

将用户转发到 Wordpress 中的自定义仪表板