get_user_by() WP 2.8.0

Отримує користувача за вказаним полем та значенням цього поля (за ID, логіном, поштою).

Це init .

Заміна функції (перевизначення) — у плагіні можна створити функцію з такою самою назвою, тоді вона замінить поточну функцію.

Працює на основі:
WP_User()
1 раз – 0.0016251 сек
(дуже повільно) | 50000 разів – 1.63 сек
(швидко) |
PHP 7.4.8, WP 5.6

Хуків немає.

Повертає

WP_User|false. Об’єкт даних про користувача, якщо вказане поле немає, то поверне false.

Використання

$ user = get_user_by ($ field, $ value);
$field
(рядок) (обов’язковий)

Поле, яким потрібно отримати користувача. Може бути:

  • idабо IDWP 4.4. – по полю ID
  • slug– по полю user_nicename
  • email– по полю user_email
  • login– по полю user_login
$value
(рядок/число) (обов’язковий)
Значення вказаного поля.

Приклади

0

#1 Отримаємо користувача по email

Наприклад, рідна функція WP, у якій використовується get_user_by() . Функція отримує користувача на e-mail адресу, якщо користувач існує, то буде повернено його ID.

function email_exists( $email ) {
	if ( $user = get_user_by('email', $email) )
		return $user->ID;

	return false;
}
0

#2 Отримаємо користувача за id

$user = get_user_by('id', 1);

$user буде містити:

WP_User Object
(
	[data] => stdClass Object
		(
			[ID] => 1
			[user_login] => kama
			[user_pass] => $P$Bu354452345AfDy0g3453245345345J/
			[user_nicename] => kama
			[user_email] => [email protected]
			[user_url] =>
			[user_registered] => 2010-03-26 09:27:40
			[user_activation_key] =>
			[user_status] =>
			[display_name] => Kama
		)

	[ID] => 1
	[caps] => Array
		(
			[administrator] => 1
		)

	[cap_key] => wp_capabilities
	[roles] => Array
		(
			[0] => administrator
		)

	[allcaps] => Array
		(
			[switch_themes] => 1
			[edit_themes] => 1
			[activate_plugins] => 1
			[edit_plugins] => 1
			[edit_users] => 1
			[edit_files] => 1
			[manage_options] => 1
			[moderate_comments] => 1
			[manage_categories] => 1
			[manage_links] => 1
			[upload_files] => 1
			[import] => 1
			[unfiltered_html] => 1
			[edit_posts] => 1
			[edit_others_posts] => 1
			[edit_published_posts] => 1
			[publish_posts] => 1
			[edit_pages] => 1
			[read] => 1
			[level_10] => 1
			[level_9] => 1
			[level_8] => 1
			[level_7] => 1
			[level_6] => 1
			[level_5] => 1
			[level_4] => 1
			[level_3] => 1
			[level_2] => 1
			[level_1] => 1
			[level_0] => 1
			[edit_others_pages] => 1
			[edit_published_pages] => 1
			[publish_pages] => 1
			[delete_pages] => 1
			[delete_others_pages] => 1
			[delete_published_pages] => 1
			[delete_posts] => 1
			[delete_others_posts] => 1
			[delete_published_posts] => 1
			[delete_private_posts] => 1
			[edit_private_posts] => 1
			[read_private_posts] => 1
			[delete_private_pages] => 1
			[edit_private_pages] => 1
			[read_private_pages] => 1
			[delete_users] => 1
			[create_users] => 1
			[unfiltered_upload] => 1
			[edit_dashboard] => 1
			[update_plugins] => 1
			[delete_plugins] => 1
			[install_plugins] => 1
			[update_themes] => 1
			[install_themes] => 1
			[manage_downloads] => 1
			[manage_database] => 1
			[democracy_admin] => 1
			[update_core] => 1
			[list_users] => 1
			[remove_users] => 1
			[add_users] => 1
			[promote_users] => 1
			[edit_theme_options] => 1
			[delete_themes] => 1
			[export] => 1
			[administrator] => 1
		)

	[filter] =>
)

нотатки

  • Global. WP_User. $current_user The current user object which holds the user data.

список змін

З версії 2.8.0Введено.
З версії 4.4.0Added ‘ID’ як alias of ‘id’ для $field parameter.
З версії 5.8.0Відновити загальний $current_user , якщо це буде використовуватися.

Код get_user_by() WP 6.0.2

function get_user_by( $field, $value ) {
	Global $current_user;

	$userdata = WP_User::get_data_by( $field, $value );

	if ( ! $userdata ) {
		return false;
	}

	if ( $current_user instanceof WP_User && $current_user->ID === (int) $userdata->ID ) {
		return $current_user;
	}

	$user = новий WP_User;
	$user->init( $userdata );

	return $user;
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *