On this page
get_blogs_of_user( int $user_id, bool $all = false ): object[]
Gets the sites a user belongs to.
Parameters
$user_idint Required-
User ID
$allbool Optional-
Whether to retrieve all sites, or only sites that are not marked as deleted, archived, or spam.
Default:
false
Return
object[] A list of the user's sites. An empty array if the user doesn't exist or belongs to no sites.
Source
File: wp-includes/user.php. View all references
function get_blogs_of_user( $user_id, $all = false ) {
global $wpdb;
$user_id = (int) $user_id;
// Logged out users can't have sites.
if ( empty( $user_id ) ) {
return array();
}
/**
* Filters the list of a user's sites before it is populated.
*
* Returning a non-null value from the filter will effectively short circuit
* get_blogs_of_user(), returning that value instead.
*
* @since 4.6.0
*
* @param null|object[] $sites An array of site objects of which the user is a member.
* @param int $user_id User ID.
* @param bool $all Whether the returned array should contain all sites, including
* those marked 'deleted', 'archived', or 'spam'. Default false.
*/
$sites = apply_filters( 'pre_get_blogs_of_user', null, $user_id, $all );
if ( null !== $sites ) {
return $sites;
}
$keys = get_user_meta( $user_id );
if ( empty( $keys ) ) {
return array();
}
if ( ! is_multisite() ) {
$site_id = get_current_blog_id();
$sites = array( $site_id => new stdClass );
$sites[ $site_id ]->userblog_id = $site_id;
$sites[ $site_id ]->blogname = get_option( 'blogname' );
$sites[ $site_id ]->domain = '';
$sites[ $site_id ]->path = '';
$sites[ $site_id ]->site_id = 1;
$sites[ $site_id ]->siteurl = get_option( 'siteurl' );
$sites[ $site_id ]->archived = 0;
$sites[ $site_id ]->spam = 0;
$sites[ $site_id ]->deleted = 0;
return $sites;
}
$site_ids = array();
if ( isset( $keys[ $wpdb->base_prefix . 'capabilities' ] ) && defined( 'MULTISITE' ) ) {
$site_ids[] = 1;
unset( $keys[ $wpdb->base_prefix . 'capabilities' ] );
}
$keys = array_keys( $keys );
foreach ( $keys as $key ) {
if ( 'capabilities' !== substr( $key, -12 ) ) {
continue;
}
if ( $wpdb->base_prefix && 0 !== strpos( $key, $wpdb->base_prefix ) ) {
continue;
}
$site_id = str_replace( array( $wpdb->base_prefix, '_capabilities' ), '', $key );
if ( ! is_numeric( $site_id ) ) {
continue;
}
$site_ids[] = (int) $site_id;
}
$sites = array();
if ( ! empty( $site_ids ) ) {
$args = array(
'number' => '',
'site__in' => $site_ids,
'update_site_meta_cache' => false,
);
if ( ! $all ) {
$args['archived'] = 0;
$args['spam'] = 0;
$args['deleted'] = 0;
}
$_sites = get_sites( $args );
foreach ( $_sites as $site ) {
$sites[ $site->id ] = (object) array(
'userblog_id' => $site->id,
'blogname' => $site->blogname,
'domain' => $site->domain,
'path' => $site->path,
'site_id' => $site->network_id,
'siteurl' => $site->siteurl,
'archived' => $site->archived,
'mature' => $site->mature,
'spam' => $site->spam,
'deleted' => $site->deleted,
);
}
}
/**
* Filters the list of sites a user belongs to.
*
* @since MU (3.0.0)
*
* @param object[] $sites An array of site objects belonging to the user.
* @param int $user_id User ID.
* @param bool $all Whether the returned sites array should contain all sites, including
* those marked 'deleted', 'archived', or 'spam'. Default false.
*/
return apply_filters( 'get_blogs_of_user', $sites, $user_id, $all );
}
Hooks
- apply_filters( 'get_blogs_of_user',
object[] $sites ,int $user_id ,bool $all ) -
Filters the list of sites a user belongs to.
- apply_filters( 'pre_get_blogs_of_user',
null|object[] $sites ,int $user_id ,bool $all ) -
Filters the list of a user’s sites before it is populated.
Related
Uses
| Uses | Description |
|---|---|
| get_sites() wp-includes/ms-site.php | Retrieves a list of sites matching requested arguments. |
| get_user_meta() wp-includes/user.php | Retrieves user meta field for a user. |
| is_multisite() wp-includes/load.php | If Multisite is enabled. |
| get_current_blog_id() wp-includes/load.php | Retrieve the current site ID. |
| apply_filters() wp-includes/plugin.php | Calls the callback functions that have been added to a filter hook. |
| get_option() wp-includes/option.php | Retrieves an option value based on an option name. |
Used By
| Used By | Description |
|---|---|
| WP_MS_Users_List_Table::column_blogs() wp-admin/includes/class-wp-ms-users-list-table.php | Handles the sites column output. |
| signup_another_blog() wp-signup.php | Shows a form for returning users to sign up for another site. |
| _access_denied_splash() wp-admin/includes/ms.php | Displays an access denied message when a user tries to view a site’s dashboard they do not have access to. |
| choose_primary_blog() wp-admin/includes/ms.php | Handles the display of choosing a user’s primary site. |
| wpmu_delete_user() wp-admin/includes/ms.php | Delete a user from the network and remove from all sites. |
| wp_dashboard_quick_press() wp-admin/includes/dashboard.php | The Quick Draft widget display and creation of drafts. |
| confirm_delete_users() wp-admin/includes/ms.php | |
| get_dashboard_url() wp-includes/link-template.php | Retrieves the URL to the user’s dashboard. |
| WP_Admin_Bar::initialize() wp-includes/class-wp-admin-bar.php | Initializes the admin bar. |
| get_most_recent_post_of_user() wp-includes/ms-functions.php | Gets a user’s most recent post. |
| get_active_blog_for_user() wp-includes/ms-functions.php | Gets one of a user’s active blogs. |
| remove_user_from_blog() wp-includes/ms-functions.php | Removes a user from a blog. |
| wp_xmlrpc_server::wp_getUsersBlogs() wp-includes/class-wp-xmlrpc-server.php | Retrieve the blogs of the user. |
Changelog
© 2003–2022 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/get_blogs_of_user