您正在传递角色名称,administrator
, 到current_user_can
. 正在查看the Codex page 这是支持的,但不能保证有效,通常应避免:
不鼓励将角色名称传递给current\\u user\\u can(),因为这不能保证正常工作(请参阅#22624)。
相反,您应该使用以下功能:
if ( current_user_can( \'manage_options\' ) ) {
echo \'Admin\';
} else if ( current_user_can( \'edit_pages\' ) ) {
echo \'Editor\';
} else if ( current_user_can( \'publish_posts\' ) ) {
echo \'Author\';
} else if ( current_user_can( \'read\' ) ) {
echo \'Subscriber\';
}
您可以找到功能和角色类型的列表
on the Codex 也
Updated 这解决了在用户上循环以显示每个用户的角色的情况:
foreach ( $comment_users as $user_id ) {
wp23234_show_user_role( $user_id );
}
function wp23234_show_user_role( $user_id ) {
$data = get_userdata( $user_id );
$roles = $data->roles;
if ( in_array( $roles, \'administrator\' ) ) {
echo \'Administrator\';
} else if ( in_array( $roles, \'editor\' ) ) {
echo \'Editor\';
} else if ( in_array( $roles, \'author\' ) ) {
echo \'Author\';
} else if ( in_array ( $roles, \'subscriber\' ) ) {
echo \'Subscriber\';
}
}