Get Authors Role

时间:2013-04-12 作者:Noob Theory

我使用的是管理角色和2个自定义角色。关于作者。php我希望能够放置该用户的角色。

我用这个在文本中引出角色

$curauth = $wp_query->get_queried_object();
$user_id = $curauth->ID;
$user = new WP_User( $user_id );
if ( !empty( $user->roles ) && is_array( $user->roles ) ) {
    foreach ( $user->roles as $role )
        echo $role;
}
我想把它放到

if (current_user_can(\'buyer\')) { 
        get_template_part( \'buyer\', \'edit\' ); } 
      else if (current_user_can(\'courier\')) { 
        get_template_part( \'courier\', \'edit\' ); } 
      else if (current_user_can(\'banned\')) { 
        get_template_part( \'account\', \'banned\' ); }
      else if (is_user_logged_in()) { 
        get_template_part( \'account\', \'error\' );
    } else {  }
对于当前用户,我需要使其对作者用户起作用。

1 个回复
最合适的回答,由SO网友:funwhilelost 整理而成

作为“current\\u user\\u can”WordPress提供的替代方案user_can“它将用户对象或ID作为参数。将顶部代码和底部代码与新函数相结合,它将如下所示:

$author_user = $wp_query->get_queried_object(); // the queried object in \'author.php\' should be an author user

if (user_can($author_user, \'buyer\')) { 
  get_template_part( \'buyer\', \'edit\' );
} else if (user_can($author_user, \'courier\')) { 
  get_template_part( \'courier\', \'edit\' );
} else if (user_can($author_user, \'banned\')) { 
  get_template_part( \'account\', \'banned\' ); 
} else {
  // etc...
}

结束

相关推荐

有没有可能导致wp_USERS表消失的已知错误?

我管理许多WordPress支持的网站。其中一个网站是新的,自一个月前成立以来一直保持原样。今天,我尝试登录,但无法做到-我所有的登录尝试都被拒绝。经过调查,我发现wp_users 缺少表。所有其他表格都存在,博客功能齐全。数据库中的任何条目或任何文件均未表明存在任何形式的黑客行为。我明天就要休假了,这让我有点担心,因为我是唯一负责这些网站的人。当然,我已经更改了所有密码,我可能会重新安装代码库,但我想知道是否有任何常见的bug可能导致这种情况?运行的WP版本为3.4.1。值得注意的安装插件包括WP Su