get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->blogs} WHERE blog_id = %d LIMIT 1", $site_id ) ); if ( empty( $_site ) || is_wp_error( $_site ) ) { return false; } wp_cache_add( $site_id, $_site, 'sites' ); } return new WP_Site( $_site ); } /** * Creates a new WP_Site object. * * Will populate object properties from the object provided and assign other * default properties based on that information. * * @since 4.5.0 * @access public * * @param WP_Site|object $site A site object. */ public function __construct( $site ) { foreach( get_object_vars( $site ) as $key => $value ) { $this->$key = $value; } } /** * Converts an object to array. * * @since 4.6.0 * @access public * * @return array Object as array. */ public function to_array() { return get_object_vars( $this ); } /** * Getter. * * Allows current multisite naming conventions when getting properties. * * @since 4.6.0 * @access public * * @param string $key Property to get. * @return mixed Value of the property. Null if not available. */ public function __get( $key ) { switch ( $key ) { case 'id': return (int) $this->blog_id; case 'blog_id': return $this->blog_id; case 'site_id': return $this->site_id; case 'network_id': return (int) $this->site_id; } return null; } /** * Isset-er. * * Allows current multisite naming conventions when checking for properties. * * @since 4.6.0 * @access public * * @param string $key Property to check if set. * @return bool Whether the property is set. */ public function __isset( $key ) { switch ( $key ) { case 'id': case 'blog_id': case 'site_id': case 'network_id': return true; } return false; } /** * Setter. * * Allows current multisite naming conventions while setting properties. * * @since 4.6.0 * @access public * * @param string $key Property to set. * @param mixed $value Value to assign to the property. */ public function __set( $key, $value ) { switch ( $key ) { case 'id': case 'blog_id': $this->blog_id = (string) $value; break; case 'site_id': case 'network_id': $this->site_id = (string) $value; break; default: $this->$key = $value; } } }