Функция 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, который позволяет переназначить записи удаляемого пользователя другому пользователю, что делает её полезной для упрощения администрирования.