Warning: Invalid argument supplied for foreach() in /www/wwwroot/edu729/wp-content/plugins/learnpress/inc/class-lp-assets.php on line 180

is_admin()、current_user_can() 判断管理员是否登录

WP二次开发时,后台程序要验证管理员是否登录,以确保系统安全。这里介绍两种方法,均可达到验证目的。

1、使用is_admin()函数

通常情况下,使用is_admin()函数,便可验证当前用户是否管理员了。

使用方法:

if (is_admin()){  //验证成功}else{  //验证失败}

is_admin()源码:

function is_admin() {if ( isset( $GLOBALS['current_screen'] ) ) {  return $GLOBALS['current_screen']->;in_admin();} elseif ( defined( 'WP_ADMIN' ) ) {  return WP_ADMIN;}  return false;}

2、使用current_user_can()函数

is_admin()这个函数判断当前登陆用户是不是管理员,这个函数是用来判断是否显示控制板或管理栏,也就是说是否处于后台控制面板中。

current_user_can()这个函数,是用来判断当前用户是否具有某级别的权限,WordPress中用户权限如下表所示:

WordPress 各个用户组所对应的级别

这个图表展示了 WordPress 各个用户组所对应的级别,那么我们需要来判断是否为管理员,也就是 Administrator,我们就用 level_10。判断代码就如下:

if(current_user_can('level_10')){    //加入符合管理员后需要添加的内容}

这样想判断其他级别的用户也就是换个级别就可以了,利用这个我们就可以做出很多对应各个用户组的对应功能。

current_user_can()源码:

function current_user_can( $capability, ...$args ) {	$current_user = wp_get_current_user();	if ( empty( $current_user ) ) {		return false;	}	return $current_user->has_cap( $capability, ...$args );}