# remove_user_from_blog()

URL: https://chugunov.pro/api-wordpress/functions/remove_user_from_blog/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: MU (3.0.0).

## Сигнатура

```php
remove_user_from_blog( int $user_id, int $blog_id, int $reassign ): true|WP_Error
```

## Описание

Используйте действие 'remove_user_from_blog', чтобы запустить событие при удалении пользователей из блога.
Принимает необязательный параметр $reassign, если вы хотите переназначить записи блога пользователя другому пользователю при удалении.

## Параметры

- `$user_id` `int` — обязательный. ID удаляемого пользователя.
- `$blog_id` `int` — необязательный. ID блога, из которого удаляется пользователь. Значение по умолчанию — 0.
- `$reassign` `int` — необязательный. ID пользователя, которому переназначаются записи. Значение по умолчанию — 0.

## Возвращаемое значение

`true|WP_Error` — WP_Error

## Исходный код

Файл: `wp-includes/ms-functions.php:239`

```php
function remove_user_from_blog( $user_id, $blog_id = 0, $reassign = 0 ) {
	global $wpdb;

	$user_id = (int) $user_id;
	$blog_id = (int) $blog_id;

	switch_to_blog( $blog_id );

	/**
	 * Fires before a user is removed from a site.
	 *
	 * @since MU (3.0.0)
	 * @since 5.4.0 Added the `$reassign` parameter.
	 *
	 * @param int $user_id  ID of the user being removed.
	 * @param int $blog_id  ID of the blog the user is being removed from.
	 * @param int $reassign ID of the user to whom to reassign posts.
	 */
	do_action( 'remove_user_from_blog', $user_id, $blog_id, $reassign );

	/*
	 * If being removed from the primary blog, set a new primary
	 * if the user is assigned to multiple blogs.
	 */
	$primary_blog = (int) get_user_meta( $user_id, 'primary_blog', true );
	if ( $primary_blog === $blog_id ) {
		$new_id     = '';
		$new_domain = '';
		$blogs      = get_blogs_of_user( $user_id );
		foreach ( (array) $blogs as $blog ) {
			if ( $blog->userblog_id === $blog_id ) {
				continue;
			}
			$new_id     = $blog->userblog_id;
			$new_domain = $blog->domain;
			break;
		}

		update_user_meta( $user_id, 'primary_blog', $new_id );
		update_user_meta( $user_id, 'source_domain', $new_domain );
	}

	$user = get_userdata( $user_id );
	if ( ! $user ) {
		restore_current_blog();
		return new WP_Error( 'user_does_not_exist', __( 'That user does not exist.' ) );
	}

	$user->remove_all_caps();

	$blogs = get_blogs_of_user( $user_id );
	if ( count( $blogs ) === 0 ) {
		update_user_meta( $user_id, 'primary_blog', '' );
		update_user_meta( $user_id, 'source_domain', '' );
	}

	if ( $reassign ) {
		$reassign = (int) $reassign;
		$post_ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_author = %d", $user_id ) );
		$link_ids = $wpdb->get_col( $wpdb->prepare( "SELECT link_id FROM $wpdb->links WHERE link_owner = %d", $user_id ) );

		if ( ! empty( $post_ids ) ) {
			$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_author = %d WHERE post_author = %d", $reassign, $user_id ) );
			array_walk( $post_ids, 'clean_post_cache' );
		}

		if ( ! empty( $link_ids ) ) {
			$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->links SET link_owner = %d WHERE link_owner = %d", $reassign, $user_id ) );
			array_walk( $link_ids, 'clean_bookmark_cache' );
		}
	}

	clean_user_cache( $user_id );
	restore_current_blog();

	return true;
}
```

## История изменений

- MU (3.0.0) — Introduced.

## Связанные

Использует: [`clean_user_cache`](https://chugunov.pro/api-wordpress/functions/clean_user_cache/), [`get_user_meta`](https://chugunov.pro/api-wordpress/functions/get_user_meta/), [`get_blogs_of_user`](https://chugunov.pro/api-wordpress/functions/get_blogs_of_user/), [`update_user_meta`](https://chugunov.pro/api-wordpress/functions/update_user_meta/), [`switch_to_blog`](https://chugunov.pro/api-wordpress/functions/switch_to_blog/), [`restore_current_blog`](https://chugunov.pro/api-wordpress/functions/restore_current_blog/), `wpdb::get_col`, `wpdb::query`, [`__`](https://chugunov.pro/api-wordpress/functions/__/), [`get_userdata`](https://chugunov.pro/api-wordpress/functions/get_userdata/), [`do_action`](https://chugunov.pro/api-wordpress/functions/do_action/), `wpdb::prepare`, `WP_Error::__construct`.
Используется в: [`wp_uninitialize_site`](https://chugunov.pro/api-wordpress/functions/wp_uninitialize_site/), [`wpmu_delete_user`](https://chugunov.pro/api-wordpress/functions/wpmu_delete_user/), [`wpmu_delete_blog`](https://chugunov.pro/api-wordpress/functions/wpmu_delete_blog/), [`wp_delete_user`](https://chugunov.pro/api-wordpress/functions/wp_delete_user/), [`add_new_user_to_blog`](https://chugunov.pro/api-wordpress/functions/add_new_user_to_blog/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/remove_user_from_blog/
