get_blogs_of_user

Definition:
function get_blogs_of_user( $user_id, $all = false ) {}

Get the blogs a user belongs to.

Parameters

  • int $user_id: User ID
  • bool $all: Whether to retrieve all blogs, or only blogs that are not marked as deleted, archived, or spam.

Return values

returns:A list of the user’s blogs. False if the user was not found or an empty array if the user has no blogs.

Defined filters

  • get_blogs_of_user
    apply_filters( 'get_blogs_of_user', $blogs, $user_id, $all )

Source code

function get_blogs_of_user( $user_id, $all = false ) {

	global $wpdb;



	$user_id = (int) $user_id;



	// Logged out users can't have blogs

	if ( empty( $user_id ) )

		return false;



	$keys = get_user_meta( $user_id );

	if ( empty( $keys ) )

		return false;



	if ( ! is_multisite() ) {

		$blog_id = get_current_blog_id();

		$blogs = array( $blog_id => new stdClass );

		$blogs[ $blog_id ]->userblog_id = $blog_id;

		$blogs[ $blog_id ]->blogname = get_option('blogname');

		$blogs[ $blog_id ]->domain = '';

		$blogs[ $blog_id ]->path = '';

		$blogs[ $blog_id ]->site_id = 1;

		$blogs[ $blog_id ]->siteurl = get_option('siteurl');

		return $blogs;

	}



	$blogs = array();



	if ( isset( $keys[ $wpdb->base_prefix . 'capabilities' ] ) && defined( 'MULTISITE' ) ) {

		$blog = get_blog_details( 1 );

		if ( $blog && isset( $blog->domain ) && ( $all || ( ! $blog->archived && ! $blog->spam && ! $blog->deleted ) ) ) {

			$blogs[ 1 ] = (object) array(

				'userblog_id' => 1,

				'blogname'    => $blog->blogname,

				'domain'      => $blog->domain,

				'path'        => $blog->path,

				'site_id'     => $blog->site_id,

				'siteurl'     => $blog->siteurl,

			);

		}

		unset( $keys[ $wpdb->base_prefix . 'capabilities' ] );

	}



	$keys = array_keys( $keys );



	foreach ( $keys as $key ) {

		if ( 'capabilities' !== substr( $key, -12 ) )

			continue;

		if ( 0 !== strpos( $key, $wpdb->base_prefix ) )

			continue;

		$blog_id = str_replace( array( $wpdb->base_prefix, '_capabilities' ), '', $key );

		if ( ! is_numeric( $blog_id ) )

			continue;



		$blog_id = (int) $blog_id;

		$blog = get_blog_details( $blog_id );

		if ( $blog && isset( $blog->domain ) && ( $all || ( ! $blog->archived && ! $blog->spam && ! $blog->deleted ) ) ) {

			$blogs[ $blog_id ] = (object) array(

				'userblog_id' => $blog_id,

				'blogname'    => $blog->blogname,

				'domain'      => $blog->domain,

				'path'        => $blog->path,

				'site_id'     => $blog->site_id,

				'siteurl'     => $blog->siteurl,

			);

		}

	}



	return apply_filters( 'get_blogs_of_user', $blogs, $user_id, $all );

}

9375

No comments yet... Be the first to leave a reply!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: