diff --git a/wp-admin/includes/template.php b/wp-admin/includes/template.php index c10402a488..ad42074dcc 100644 --- a/wp-admin/includes/template.php +++ b/wp-admin/includes/template.php @@ -756,7 +756,7 @@ function wp_dropdown_roles( $selected = false ) { $p = ''; $r = ''; - $editable_roles = get_editable_roles(); + $editable_roles = array_reverse( get_editable_roles() ); foreach ( $editable_roles as $role => $details ) { $name = translate_user_role($details['name'] ); diff --git a/wp-includes/capabilities.php b/wp-includes/capabilities.php index 789a9dd197..75a834b4f8 100644 --- a/wp-includes/capabilities.php +++ b/wp-includes/capabilities.php @@ -193,6 +193,9 @@ class WP_Roles { if ( $this->use_db ) update_option( $this->role_key, $this->roles ); + + if ( get_option( 'default_role' ) == $role ) + update_option( 'default_role', 'subscriber' ); } /** diff --git a/wp-includes/formatting.php b/wp-includes/formatting.php index e7b752d710..904c99b17b 100644 --- a/wp-includes/formatting.php +++ b/wp-includes/formatting.php @@ -2957,6 +2957,11 @@ function sanitize_option($option, $value) { $value = esc_url_raw( $value ); $value = str_replace( 'http://', '', $value ); break; + + case 'default_role' : + if ( ! get_role( $value ) && get_role( 'subscriber' ) ) + $value = 'subscriber'; + break; } $value = apply_filters("sanitize_option_{$option}", $value, $option);