WordPress как на ладони
rgbcode is looking for WordPress developers.

get_user_by()WP 2.8.0

Получает пользователя по указанному полю и значению этого поля (по ID, логину, почте).

Pluggable функция — эту функцию можно заменить из плагина. Это значит, что она будет работать (подключается) только после подключения всех плагинов, а до этого момента функция еще не определена... Поэтому нельзя вызывать эту и зависящие от неё функции прямо из кода плагина. Их нужно вызывать через хук plugins_loaded или позднее, например хук init.

Замена функции (переопределение) — в must-use или обычном плагине можно создать функцию с таким же названием, тогда она заменит текущую функцию.

Работает на основе: 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 или ID с WP 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] => tggagga@mail.ru
			[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.0 Added 'ID' as an alias of 'id' for the $field parameter.

Код get_user_by() WP 6.4.3

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

	if ( ! $userdata ) {
		return false;
	}

	$user = new WP_User();
	$user->init( $userdata );

	return $user;
}
6 комментариев
    Войти