WordPress.org

Make WordPress Core

Ticket #22959: 22959.diff

File 22959.diff, 3.0 KB (added by scribu, 3 years ago)
  • wp-admin/includes/class-wp-users-list-table.php

    diff --git wp-admin/includes/class-wp-users-list-table.php wp-admin/includes/class-wp-users-list-table.php
    index 9ad3c13..3d41e98 100644
    class WP_Users_List_Table extends WP_List_Table { 
    193193                if ( ! $this->is_site_users ) 
    194194                        $post_counts = count_many_users_posts( array_keys( $this->items ) ); 
    195195 
    196                 $editable_roles = array_keys( get_editable_roles() ); 
    197  
    198196                $style = ''; 
    199197                foreach ( $this->items as $userid => $user_object ) { 
    200                         if ( count( $user_object->roles ) <= 1 ) { 
    201                                 $role = reset( $user_object->roles ); 
    202                         } elseif ( $roles = array_intersect( array_values( $user_object->roles ), $editable_roles ) ) { 
    203                                 $role = reset( $roles ); 
    204                         } else { 
    205                                 $role = reset( $user_object->roles ); 
    206                         } 
    207  
    208198                        if ( is_multisite() && empty( $user_object->allcaps ) ) 
    209199                                continue; 
    210200 
    211201                        $style = ( ' class="alternate"' == $style ) ? '' : ' class="alternate"'; 
    212                         echo "\n\t", $this->single_row( $user_object, $style, $role, isset( $post_counts ) ? $post_counts[ $userid ] : 0 ); 
     202                        echo "\n\t", $this->single_row( $user_object, $style, isset( $post_counts ) ? $post_counts[ $userid ] : 0 ); 
    213203                } 
    214204        } 
    215205 
    class WP_Users_List_Table extends WP_List_Table { 
    224214         * @param int $numposts Optional. Post count to display for this user. Defaults to zero, as in, a new user has made zero posts. 
    225215         * @return string 
    226216         */ 
    227         function single_row( $user_object, $style = '', $role = '', $numposts = 0 ) { 
    228                 global $wp_roles; 
    229  
     217        function single_row( $user_object, $style = '', $numposts = 0 ) { 
    230218                if ( !( is_object( $user_object ) && is_a( $user_object, 'WP_User' ) ) ) 
    231219                        $user_object = get_userdata( (int) $user_object ); 
    232220                $user_object->filter = 'display'; 
    class WP_Users_List_Table extends WP_List_Table { 
    267255                } else { 
    268256                        $edit = '<strong>' . $user_object->user_login . '</strong>'; 
    269257                } 
    270                 $role_name = isset( $wp_roles->role_names[$role] ) ? translate_user_role( $wp_roles->role_names[$role] ) : __( 'None' ); 
     258 
    271259                $avatar = get_avatar( $user_object->ID, 32 ); 
    272260 
    273261                $r = "<tr id='user-$user_object->ID'$style>"; 
    class WP_Users_List_Table extends WP_List_Table { 
    297285                                        $r .= "<td $attributes><a href='mailto:$email' title='" . esc_attr( sprintf( __( 'E-mail: %s' ), $email ) ) . "'>$email</a></td>"; 
    298286                                        break; 
    299287                                case 'role': 
    300                                         $r .= "<td $attributes>$role_name</td>"; 
     288                                        $r .= "<td $attributes>" . $this->get_role_str( $user_object ) . "</td>"; 
    301289                                        break; 
    302290                                case 'posts': 
    303291                                        $attributes = 'class="posts column-posts num"' . $style; 
    class WP_Users_List_Table extends WP_List_Table { 
    321309 
    322310                return $r; 
    323311        } 
     312 
     313        private function get_role_str( $user_object ) { 
     314                global $wp_roles; 
     315 
     316                $role_str = array(); 
     317 
     318                foreach ( $user_object->roles as $role ) { 
     319                        if ( isset( $wp_roles->role_names[$role] ) ) 
     320                                $role_str[] = translate_user_role( $wp_roles->role_names[$role] ); 
     321                } 
     322 
     323                if ( empty( $role_str ) ) 
     324                        return __( 'None' ); 
     325 
     326                return implode( ', ', $role_str ); 
     327        } 
    324328}