Make WordPress Core

Ticket #37061: 37061.diff

File 37061.diff, 3.6 KB (added by flixos90, 8 years ago)
  • src/wp-includes/class-wp-site.php

     
    1717 *
    1818 * @property int $id
    1919 * @property int $network_id
     20 * @property int $userblog_id
    2021 */
    2122final class WP_Site {
    2223
     
    229230        public function __get( $key ) {
    230231                switch ( $key ) {
    231232                        case 'id':
     233                        case 'userblog_id':
    232234                                return (int) $this->blog_id;
    233235                        case 'network_id':
    234236                                return (int) $this->site_id;
     
    261263        public function __isset( $key ) {
    262264                switch ( $key ) {
    263265                        case 'id':
     266                        case 'userblog_id':
    264267                        case 'network_id':
    265268                                return true;
    266269                        case 'blogname':
     
    290293        public function __set( $key, $value ) {
    291294                switch ( $key ) {
    292295                        case 'id':
     296                        case 'userblog_id':
    293297                                $this->blog_id = (string) $value;
    294298                                break;
    295299                        case 'network_id':
  • src/wp-includes/user.php

     
    618618                return $blogs;
    619619        }
    620620
    621         $blogs = array();
     621        $site_ids = array();
    622622
    623623        if ( isset( $keys[ $wpdb->base_prefix . 'capabilities' ] ) && defined( 'MULTISITE' ) ) {
    624                 $blog = get_blog_details( 1 );
    625                 if ( $blog && isset( $blog->domain ) && ( $all || ( ! $blog->archived && ! $blog->spam && ! $blog->deleted ) ) ) {
    626                         $blogs[ 1 ] = (object) array(
    627                                 'userblog_id' => 1,
    628                                 'blogname'    => $blog->blogname,
    629                                 'domain'      => $blog->domain,
    630                                 'path'        => $blog->path,
    631                                 'site_id'     => $blog->site_id,
    632                                 'siteurl'     => $blog->siteurl,
    633                                 'archived'    => $blog->archived,
    634                                 'mature'      => $blog->mature,
    635                                 'spam'        => $blog->spam,
    636                                 'deleted'     => $blog->deleted,
    637                         );
    638                 }
     624                $site_ids[] = 1;
    639625                unset( $keys[ $wpdb->base_prefix . 'capabilities' ] );
    640626        }
    641627
     
    650636                if ( ! is_numeric( $blog_id ) )
    651637                        continue;
    652638
    653                 $blog_id = (int) $blog_id;
    654                 $blog = get_blog_details( $blog_id );
    655                 if ( $blog && isset( $blog->domain ) && ( $all || ( ! $blog->archived && ! $blog->spam && ! $blog->deleted ) ) ) {
    656                         $blogs[ $blog_id ] = (object) array(
    657                                 'userblog_id' => $blog_id,
    658                                 'blogname'    => $blog->blogname,
    659                                 'domain'      => $blog->domain,
    660                                 'path'        => $blog->path,
    661                                 'site_id'     => $blog->site_id,
    662                                 'siteurl'     => $blog->siteurl,
    663                                 'archived'    => $blog->archived,
    664                                 'mature'      => $blog->mature,
    665                                 'spam'        => $blog->spam,
    666                                 'deleted'     => $blog->deleted,
    667                         );
    668                 }
     639                $site_ids[] = (int) $blog_id;
    669640        }
    670641
     642        $args = array(
     643                'number' => '',
     644                'site__in' => $site_ids,
     645        );
     646        if ( ! $all ) {
     647                $args['archived'] = 0;
     648                $args['spam']     = 0;
     649                $args['deleted']  = 0;
     650        }
     651
     652        $_sites = get_sites( $args );
     653
     654        $sites = array();
     655        foreach ( $_sites as $site ) {
     656                $sites[ $site->id ] = $site;
     657        }
     658
    671659        /**
    672          * Filters the list of blogs a user belongs to.
     660         * Filters the list of sites a user belongs to.
    673661         *
    674662         * @since MU
    675663         *
    676          * @param array $blogs   An array of blog objects belonging to the user.
     664         * @param array $sites   An array of site objects belonging to the user.
    677665         * @param int   $user_id User ID.
    678          * @param bool  $all     Whether the returned blogs array should contain all blogs, including
     666         * @param bool  $all     Whether the returned sites array should contain all sites, including
    679667         *                       those marked 'deleted', 'archived', or 'spam'. Default false.
    680668         */
    681         return apply_filters( 'get_blogs_of_user', $blogs, $user_id, $all );
     669        return apply_filters( 'get_blogs_of_user', $sites, $user_id, $all );
    682670}
    683671
    684672/**