From 982da953f59c6990ad5ab0fd4b6faa06372aaee0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20W=C3=BCnsch?= Date: Thu, 5 Jun 2025 13:06:01 +0200 Subject: [PATCH 1/4] get_super_admins() should not return "admin" by default --- src/wp-includes/capabilities.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/wp-includes/capabilities.php b/src/wp-includes/capabilities.php index d6c340c95eef0..6a9dd942432fc 100644 --- a/src/wp-includes/capabilities.php +++ b/src/wp-includes/capabilities.php @@ -1141,7 +1141,7 @@ function get_super_admins() { if ( isset( $super_admins ) ) { return $super_admins; } else { - return get_site_option( 'site_admins', array( 'admin' ) ); + return get_site_option( 'site_admins', array() ); } } @@ -1203,7 +1203,7 @@ function grant_super_admin( $user_id ) { do_action( 'grant_super_admin', $user_id ); // Directly fetch site_admins instead of using get_super_admins(). - $super_admins = get_site_option( 'site_admins', array( 'admin' ) ); + $super_admins = get_site_option( 'site_admins', array() ); $user = get_userdata( $user_id ); if ( $user && ! in_array( $user->user_login, $super_admins, true ) ) { @@ -1250,7 +1250,7 @@ function revoke_super_admin( $user_id ) { do_action( 'revoke_super_admin', $user_id ); // Directly fetch site_admins instead of using get_super_admins(). - $super_admins = get_site_option( 'site_admins', array( 'admin' ) ); + $super_admins = get_site_option( 'site_admins', array() ); $user = get_userdata( $user_id ); if ( $user && 0 !== strcasecmp( $user->user_email, get_site_option( 'admin_email' ) ) ) { From a06bcaf9b3cd78cf386431e1bc364e65ba901223 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20W=C3=BCnsch?= Date: Mon, 10 Aug 2026 10:52:44 +0200 Subject: [PATCH 2/4] Update trunk --- src/wp-includes/capabilities.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wp-includes/capabilities.php b/src/wp-includes/capabilities.php index 645ab5588ee5e..290d2077e08b1 100644 --- a/src/wp-includes/capabilities.php +++ b/src/wp-includes/capabilities.php @@ -1163,7 +1163,7 @@ function remove_role( $role ) { function get_super_admins() { global $super_admins; - return $super_admins ?? get_site_option( 'site_admins', array( 'admin' ) ); + return $super_admins ?? get_site_option( 'site_admins', array() ); } /** From cd87447b96c4ee949d125490be6e1d836f2a359a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20W=C3=BCnsch?= Date: Mon, 10 Aug 2026 10:54:22 +0200 Subject: [PATCH 3/4] Fix: Update default site_admins to an empty array instead of containing "admin" --- src/wp-includes/capabilities.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/wp-includes/capabilities.php b/src/wp-includes/capabilities.php index 290d2077e08b1..d57b5c1f3778a 100644 --- a/src/wp-includes/capabilities.php +++ b/src/wp-includes/capabilities.php @@ -1224,7 +1224,7 @@ function grant_super_admin( $user_id ) { do_action( 'grant_super_admin', $user_id ); // Directly fetch site_admins instead of using get_super_admins(). - $super_admins = get_site_option( 'site_admins', array( 'admin' ) ); + $super_admins = get_site_option( 'site_admins', array() ); $user = get_userdata( $user_id ); if ( $user && ! in_array( $user->user_login, $super_admins, true ) ) { @@ -1272,7 +1272,7 @@ function revoke_super_admin( $user_id ) { do_action( 'revoke_super_admin', $user_id ); // Directly fetch site_admins instead of using get_super_admins(). - $super_admins = get_site_option( 'site_admins', array( 'admin' ) ); + $super_admins = get_site_option( 'site_admins', array() ); $user = get_userdata( $user_id ); if ( $user ) { From 2a2ac4357333e2721852b6083f302db546c9e619 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20W=C3=BCnsch?= Date: Mon, 10 Aug 2026 13:55:34 +0200 Subject: [PATCH 4/4] Add @since comment --- src/wp-includes/capabilities.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/wp-includes/capabilities.php b/src/wp-includes/capabilities.php index d57b5c1f3778a..0afdd8136bb34 100644 --- a/src/wp-includes/capabilities.php +++ b/src/wp-includes/capabilities.php @@ -1155,6 +1155,7 @@ function remove_role( $role ) { * Retrieves a list of super admins. * * @since 3.0.0 + * @since 7.2.0 The `site_admins` site option no longer defaults to `array( 'admin' )`. * * @global array $super_admins *