функция
since 4.4.0
wp_get_users_with_no_role()
Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.
Сигнатура
wp_get_users_with_no_role( int|null $site_id = null ): string[]
Описание
Получает ID всех пользователей, не имеющих роли на этом сайте.
Параметры
$site_id
int|null
необязательный
= null
ID сайта, для которого нужно получить пользователей без роли. По умолчанию — текущий сайт.
Возвращаемое значение
string[]
Исходный код
wp-includes/user.php:3735
function wp_get_users_with_no_role( $site_id = null ) {
global $wpdb;
if ( ! $site_id ) {
$site_id = get_current_blog_id();
}
$prefix = $wpdb->get_blog_prefix( $site_id );
if ( is_multisite() && get_current_blog_id() !== $site_id ) {
switch_to_blog( $site_id );
$role_names = wp_roles()->get_names();
restore_current_blog();
} else {
$role_names = wp_roles()->get_names();
}
$regex = implode( '|', array_keys( $role_names ) );
$regex = preg_replace( '/[^a-zA-Z_\|-]/', '', $regex );
$users = $wpdb->get_col(
$wpdb->prepare(
"SELECT user_id
FROM $wpdb->usermeta
WHERE meta_key = '{$prefix}capabilities'
AND meta_value NOT REGEXP %s",
$regex
)
);
return $users;
}
История изменений
| Версия | Описание |
|---|---|
| 4.9.0 | The $site_id parameter was added to support multisite. |
| 4.4.0 | Introduced. |

