Функция remove_user_from_blog()
удаляет пользователя из указанного сайта в многосайтовой сети WordPress (WordPress Multisite). Эта функция часто используется для управления доступом к сайтам и позволяет указать, следует ли переназначить записи удаленного пользователя другому пользователю.
remove_user_from_blog( int $user_id, int $blog_id = 0, int $reassign = 0 ): true|WP_Error
Функция remove_user_from_blog()
полезна для администраторов многосайтовой сети, когда необходимо отозвать доступ пользователя к конкретному сайту. Дополнительно доступен параметр $reassign
, позволяющий передать все записи, созданные удаляемым пользователем, другому пользователю.
Параметры
$user_id
(обязательно): ID пользователя, которого требуется удалить.$blog_id
(необязательно): ID блога, из которого удаляется пользователь. По умолчанию –0
, что означает текущий сайт.$reassign
(необязательно): ID пользователя, которому будут переназначены записи. По умолчанию –0
, что оставляет записи без изменения.
Возвращаемое значение
Возвращает true
при успешном удалении пользователя или объект WP_Error
, если пользователь с указанным ID не найден.
Пример 1: Удаление пользователя с ID 25 из текущего сайта
Этот пример удаляет пользователя с идентификатором 25
из текущего блога.
$user_id = 25;
$result = remove_user_from_blog( $user_id );
if ( is_wp_error( $result ) ) {
echo 'Ошибка: ' . $result->get_error_message();
} else {
echo 'Пользователь успешно удален.';
}
В данном примере, если удаление выполнено успешно, будет отображено сообщение «Пользователь успешно удален». В случае ошибки, например если пользователя не существует, выводится соответствующее сообщение.
Пример 2: Удаление пользователя с ID 40 из блога с ID 3
В следующем примере указывается ID блога, из которого необходимо удалить пользователя.
$user_id = 40;
$blog_id = 3;
$result = remove_user_from_blog( $user_id, $blog_id );
if ( is_wp_error( $result ) ) {
echo 'Ошибка: ' . $result->get_error_message();
} else {
echo 'Пользователь удален с сайта ID ' . $blog_id;
}
Этот код удаляет пользователя с ID 40
из блога с ID 3
. В случае ошибки (например, если указанного блога или пользователя не существует), выводится сообщение об ошибке.
Пример 3: Удаление пользователя с переносом его записей другому пользователю
Этот пример показывает, как использовать параметр $reassign
, чтобы передать все записи пользователя с ID 52
пользователю с ID 18
.
$user_id = 52;
$reassign = 18;
$result = remove_user_from_blog( $user_id, 0, $reassign );
if ( is_wp_error( $result ) ) {
echo 'Ошибка: ' . $result->get_error_message();
} else {
echo 'Пользователь удален, и его записи переназначены пользователю с ID ' . $reassign;
}
Здесь записи пользователя с ID 52
переназначаются пользователю с ID 18
, что полезно при удалении редакторов или авторов, чьи записи важно сохранить в блоге.
Хуки
Функция remove_user_from_blog()
поддерживает несколько хуков, что позволяет расширять её возможности и добавлять собственные действия при удалении пользователей.
remove_user_from_blog
: Этот хук вызывается перед удалением пользователя из сайта. Можно использовать его для выполнения дополнительных действий.
add_action( 'remove_user_from_blog', 'my_custom_function', 10, 3 );
function my_custom_function( $user_id, $blog_id, $reassign ) {
// Логика, выполняемая перед удалением пользователя.
error_log( "Пользователь с ID $user_id удаляется из блога $blog_id." );
}
Здесь в логе будет фиксироваться информация о каждом удалении пользователя из сайта, что полезно для администрирования многосайтовой сети.
Заключение
Функция remove_user_from_blog()
в WordPress позволяет управлять доступом пользователей к сайтам в сети Multisite, делая её незаменимой для администраторов. Она обеспечивает гибкость благодаря параметру $reassign
, который позволяет переназначить записи удаляемого пользователя другому пользователю, что делает её полезной для упрощения администрирования.