get_user_by()
Отримує користувача за вказаним полем та значенням цього поля (за ID, логіном, поштою).
Це init .
Заміна функції (перевизначення) — у плагіні можна створити функцію з такою самою назвою, тоді вона замінить поточну функцію.
Працює на основі:
WP_User()
WP_User()
1 раз – 0.0016251 сек
(дуже повільно) | 50000 разів – 1.63 сек
(швидко) |
PHP 7.4.8, WP 5.6
(дуже повільно) | 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. – по полю IDslug
– по полю user_nicenameemail
– по полю user_emaillogin
– по полю user_login
-
$value
(рядок/число) (обов’язковий) - Значення вказаного поля.
Приклади
#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; }
#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.0 | Added ‘ID’ як alias of ‘id’ для $field parameter. |
З версії 5.8.0 | Відновити загальний $current_user , якщо це буде використовуватися. |
Код get_user_by() 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; }