WordPress как на ладони
wordpress jino

get_userdata() WP 0.71

Получает объект WP_User, который содержит все данные указанного пользователя.

Данные, возвращаемые функций полностью соответствуют полям таблиц БД: wp_users и wp_usermeta (описание таблиц см. тут).

Используется в: get_the_author_meta(), get_user_option().
Работает на основе: get_user_by()
✈ 1 раз = 0.000296с = быстро | 50000 раз = 0.78с = очень быстро PHP 7.1.2RC1, WP 4.7.2

Хуков нет.

Возвращает

WP_User/false. Объект данных или false, если не удалось найти указанного пользователя.

Использование

get_userdata( $userid );
$userid(число) (обязательный)
ID пользователя, данные которого нужно получить.
По умолчанию: нет

Примеры

#1 Как выводить данные из полученного объекта данных

$user_info = get_userdata(1);

echo 'Имя пользователя: ' . $user_info->user_login . "\n";
echo 'Уровень доступа: ' . $user_info->user_level . "\n";
echo 'ID: ' . $user_info->ID . "\n";

/* Выведет:
Имя пользователя: admin
Уровень доступа: 10
ID: 1
*/

#1.2 Данные в переменную

Еще одни пример, только тут запишем данные сначала в переменные, а затем выведем из на экран:

$user_info  = get_userdata(1);
$username   = $user_info->user_login;
$first_name = $user_info->first_name;
$last_name  = $user_info->last_name;

echo "$first_name $last_name зашел(а) на сайт под логином: $username.";

#2 Методы класса

Получаемый объект с помощью get_userdata() - это экземпляр класса и у него есть методы, которые можно использовать. Иногда это может пригодится. Вот простой пример получения опции пользователя, с помощью метода $user->get():

$user = get_userdata(1);
echo $username = $user->get('user_login');

Список некоторых методов:

  • get( $key ) - вернет значение опции;

  • has_prop( $key ) - проверяет установлена ли указанная опция;

  • has_cap( $cap ) - проверяет имеет ли пользователь указанную возможность или роль;

  • get_role_caps() - получает все возможности роли пользователя и объединяет их с индивидуальными возможностями пользователя;

  • add_role( $role ) - добавляет роль к пользователю;

  • remove_role( $role ) - удаляет роль у пользователя;

  • set_role( $role ) - устанавливает роль пользователя;

Заметки

Вот некоторые полезные значения полей таблиц wp_users и wp_usermeta, которые вы можете использовать для получения данных:

users

  • ID

  • user_login

  • user_pass

  • user_nicename

  • user_email

  • user_url

  • user_registered

  • display_name

user_meta

  • user_firstname

  • user_lastname

  • nickname

  • user_description

  • wp_capabilities (массив)

  • admin_color (тема админ панели. По умолчанию - свежая (fresh))

  • closedpostboxes_page

  • primary_blog

  • rich_editing

  • source_domain

Также надо отметит, что с версии 3.2., возвращаемые данные немного изменились: возвращается объект WP_User (данные в объекте разбиваются на группы: data, caps, roles), раньше данные возвращались в общем списке. Однако, благодаря "волшебным" (служебным) методам PHP данные можно получить как и прежде, например, сейчас данные хранятся так: get_userdata(1)->data->rich_editing, но получить их можно так: get_userdata(1)->rich_editing, несмотря на то, что var_dump() не покажет эту взаимосвязь.

Код get userdata: wp-includes/pluggable.php WP 4.9

<?php
function get_userdata( $user_id ) {
	return get_user_by( 'id', $user_id );
}

Cвязанные функции

Из метки: _user

Еще из раздела: Остальное

get_userdata 10 комментариев
  • despero @

    здраствуйте а не подскажете как вывести роль зарегистрированного коментатора (именно в коментариях) рядом с его ником

    Ответить4.1 года назад #
    • Kama4660
      echo kama_user_role(1);
      // вернет: Администратор
      
      function kama_user_role($user_id){
      	$user = get_userdata( (int) $user_id );
      	$roles = implode(', ', $user->roles);
      	$replace = array(
      		'administrator' => 'Администратор', 
      		'editor' => 'Редактор',
      		'author' => 'Автор', 
      		'contributor' => 'Помощник', 
      		'subscriber' => 'Подписчик'
      	);
      	$roles = strtr($roles, $replace);
      	return $roles;
      }
      Ответить4.1 года назад #
  • А как можно изменить формат даты в user_registered? Мне нужно вывести "Дата регистрации: такая-то (без времени)"

    Ответить2.3 года назад #
    • campusboy1946 cайт: www.youtube.com/c/wpplus
      $user = get_userdata(1); //Получаем все данные пользователя с id=1 (обычно админ)
      $user_reg = $user->get('user_registered');
      $datetime = new DateTime($user_reg);
      echo $datetime->format('Y-m-d');//Выведет год-месяц-день

      Вывод в нужном формате управляется изменением Y-m-d на другие значения.

      3
      Ответить2.3 года назад #
  • Femil cайт: femil.org.ua

    Конструкция

    $user_info=get_userdata( $user_id );
    	echo $user_info->user_pass;
    

    выводит хеш пароля, а не пароль. Как бы мне его расшифровать (?), чтоб отправлять пользователю именно пароль при регистрации, а не хеш, с которым он ничего все равно сделать не сможет.
    Раньше, вроде, возвращало пароль (((
    Заранее спасибо за подсказки...

    Ответить1.5 года назад #
    • Kama4660

      Хакер что ли? smile Это они такие вопросы задают и пытаются расшифровать. А сделать это никак нельзя, ну подбором можно подобрать конечно... Через wp_check_password()

      А сделано это кроме защиты, чтобы пароль пользователя знал только он ни админ ни кто другой! А то ведь я могу вас попросить регнуться у меня и узнать ваш пароль и пойти в соц сеть с этим паролем и там за вас авторизоваться, часто же люди один и тот же пароль используют в разных местах...

      Ответить1.5 года назад #
  • Виталий @

    Здравствуйте! У меня созданы дополнительные роли на сайте. А как вывести имя роли по ид пользователя по русски, а не в английской интерпретации?

    Ответитьгод назад #
  • Александр

    Присоединяюсь, подскажите пожалуйста, как вывести Роль пользователя, никак понять не могу(

  • Олег

    Подскажите как вывести input с именем юзера, и при этом чтобы можно было вносить изменения и сохранять в базе данных все это

Здравствуйте, !

Ваш комментарий