Title: WP_Roles::for_site
Published: November 20, 2017
Last modified: May 20, 2026

---

# WP_Roles::for_site( int $site_id = null )

## In this article

 * [Parameters](https://developer.wordpress.org/reference/classes/wp_roles/for_site/?output_format=md#parameters)
 * [Source](https://developer.wordpress.org/reference/classes/wp_roles/for_site/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/classes/wp_roles/for_site/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/classes/wp_roles/for_site/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/classes/wp_roles/for_site/?output_format=md#wp--skip-link--target)

Sets the site to operate on. Defaults to the current site.

## 󠀁[Parameters](https://developer.wordpress.org/reference/classes/wp_roles/for_site/?output_format=md#parameters)󠁿

 `$site_id`intoptional

Site ID to initialize roles for. Default is the current site.

Default:`null`

## 󠀁[Source](https://developer.wordpress.org/reference/classes/wp_roles/for_site/?output_format=md#source)󠁿

    ```php
    public function for_site( $site_id = null ) {
    	global $wpdb;

    	if ( ! empty( $site_id ) ) {
    		$this->site_id = absint( $site_id );
    	} else {
    		$this->site_id = get_current_blog_id();
    	}

    	$this->role_key = $wpdb->get_blog_prefix( $this->site_id ) . 'user_roles';

    	if ( ! empty( $this->roles ) && ! $this->use_db ) {
    		return;
    	}

    	$this->roles = $this->get_roles_data();

    	$this->init_roles();
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/class-wp-roles.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/7.0/src/wp-includes/class-wp-roles.php#L333)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.0/src/wp-includes/class-wp-roles.php#L333-L351)

## 󠀁[Related](https://developer.wordpress.org/reference/classes/wp_roles/for_site/?output_format=md#related)󠁿

| Uses | Description | 
| [WP_Roles::get_roles_data()](https://developer.wordpress.org/reference/classes/wp_roles/get_roles_data/)`wp-includes/class-wp-roles.php` |

Gets the available roles data.

  | 
| [WP_Roles::init_roles()](https://developer.wordpress.org/reference/classes/wp_roles/init_roles/)`wp-includes/class-wp-roles.php` |

Initializes all of the available roles.

  | 
| [wpdb::get_blog_prefix()](https://developer.wordpress.org/reference/classes/wpdb/get_blog_prefix/)`wp-includes/class-wpdb.php` |

Gets blog prefix.

  | 
| [get_current_blog_id()](https://developer.wordpress.org/reference/functions/get_current_blog_id/)`wp-includes/load.php` |

Retrieves the current site ID.

  | 
| [absint()](https://developer.wordpress.org/reference/functions/absint/)`wp-includes/load.php` |

Converts a value to non-negative integer.

  |

[Show 2 more](https://developer.wordpress.org/reference/classes/wp_roles/for_site/?output_format=md#)
[Show less](https://developer.wordpress.org/reference/classes/wp_roles/for_site/?output_format=md#)

| Used by | Description | 
| [wp_switch_roles_and_user()](https://developer.wordpress.org/reference/functions/wp_switch_roles_and_user/)`wp-includes/ms-blogs.php` |

Switches the initialized roles and current user capabilities to another site.

  | 
| [WP_Roles::__construct()](https://developer.wordpress.org/reference/classes/wp_roles/__construct/)`wp-includes/class-wp-roles.php` |

Constructor.

  | 
| [WP_Roles::_init()](https://developer.wordpress.org/reference/classes/wp_roles/_init/)`wp-includes/class-wp-roles.php` |

Sets up the object properties.

  | 
| [WP_Roles::reinit()](https://developer.wordpress.org/reference/classes/wp_roles/reinit/)`wp-includes/class-wp-roles.php` |

Reinitializes the object.

  | 
| [WP_User_Query::prepare_query()](https://developer.wordpress.org/reference/classes/wp_user_query/prepare_query/)`wp-includes/class-wp-user-query.php` |

Prepares the query variables.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/classes/wp_roles/for_site/?output_format=md#changelog)󠁿

| Version | Description | 
| [4.9.0](https://developer.wordpress.org/reference/since/4.9.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwp_roles%2Ffor_site%2F)
before being able to contribute a note or feedback.