WordPress函数:is_super_admin 超级管理员判断

追格官方小助手/ 2022年11月11日/ WordPress/ 浏览 1817

之前,介绍过如何判断WordPress用户是否是管理员,见文章:《WordPress 如何判断当前用户是否是管理员》。除了上文中介绍的方法之外,其实还有一种方法,就是使用 is_super_admin 函数。


先看一下函数源码:


function is_super_admin( $user_id = false ) {
	if ( ! $user_id ) {
		$user = wp_get_current_user();
	} else {
		$user = get_userdata( $user_id );
	}

	if ( ! $user || ! $user->exists() ) {
		return false;
	}

	if ( is_multisite() ) {
		$super_admins = get_super_admins();
		if ( is_array( $super_admins ) && in_array( $user->user_login, $super_admins, true ) ) {
			return true;
		}
	} else {
		if ( $user->has_cap( 'delete_users' ) ) {
			return true;
		}
	}

	return false;
}


从源代码中可以看出,这个函数在WordPress多站点模式中,用来判断用户是否是站点管理员;非多站点模式,则是判断用户是否具有 delete_users 的权限。


这个函数可以当做判断是否是管理员的一种方式,但是不推荐使用,因为这个函数具有二义性,容易造成混乱。

发表评论

暂无评论,抢个沙发...

客服 工单