get_user_by() — позволяет получить информацию о пользователе, если известен или логин, или ID, или email
В случае успеха возвращает объект пользователя WP_User. Если же пользователя с указанными параметрами не существует , возвращает false .
get_user_by( $field, $value )
$field (строка) по какому параметру будем определять пользователя. Может принимать значения:
- id — ID пользователя,
- slug — значение user_nicename,
- email — email пользователя,
- login — имя пользователя (логин);
Примеры
Предположим, что мы знаем только email пользователя, всё остальное нам как раз-таки необходимо выяснить, тогда:
$my_user = get_user_by('email', 'true@truemisha.ru'); // ID пользователя echo $my_user->ID; // имя пользователя (логин) echo $my_user->user_login; // хэш пароля echo $my_user->user_pass; echo $my_user->user_nicename; // email пользователя, в данном примере уже известен // echo $my_user->user_email; // сайт echo $my_user->user_url; // дата регистрации echo $my_user->user_registered; // ключ активации echo $my_user->user_activation_key; echo $my_user->user_status; // отображаемое имя echo $my_user->display_name; // имя echo $my_user->first_name; // фамилия echo $my_user->last_name;
Миша
Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.
Пишите, если нужна помощь с сайтом или разработка с нуля.
7 способов узнать ID пользователя в WordPress
Обзорная статья о том, как узнать ID пользователя WordPress в различных ситуациях.
Что такое ID пользователя? Это его уникальный идентификатор, используемый в различных функциях движка WP.
1. URL профиля пользователя в админке
Способ довольно простой, однако у него есть два минуса. Во-первых, вы должны быть авторизованы, во-вторых, вы не сможете узнать ID пользователя, под которым вы вошли.
-
Авторизуемся в админке и переходим в меню Пользователи > Все пользователи.


2. Добавление колонки с ID в список пользователей в админке
Скажу вам честно, если вам часто приходится выяснять ID пользователей WordPress, то этот способ значительно облегчит вашу жизнь. Он прост в установке и дает потрясающий результат:

Для того, чтобы установить такое на свой блог, достаточно вставить следующий код в functions.php вашей текущей темы:
/* * Добавление колонки */ function true_user_id_column( $columns ) { $columns['user_id'] = 'ID'; return $columns; } add_filter('manage_users_columns', 'true_user_id_column'); /* * Заполнение колонки */ function true_user_id_column_content($value, $column_name, $user_id) { if ( 'user_id' == $column_name ) return $user_id; return $value; } add_action('manage_users_custom_column', 'true_user_id_column_content', 10, 3); /* * Оформление колонки (необязательно) */ function true_user_id_column_style(){ echo '.column-user_id '; } add_action('admin_head-users.php', 'true_user_id_column_style');
3. Как узнать ID пользователя, зная его email
Здесь нам поможет функция get_user_by(). Вот простой пример:
$user = get_user_by('email', 'true@truemisha.ru'); $user_id = $user->ID;
4. Получаем ID пользователя по его имени пользователя (логину)
В данном примере второй аргумент «admin» и есть заданное имя пользователя. Впрочем, за всеми подробностями обращайтесь к описанию функции get_user_by().
$user = get_user_by('login', 'admin'); $user_id = $user->ID;
5. Если известно только имя (first_name) или фамилия (last_name)
Выводим ID всех пользователей с именем «Миша»:
global $wpdb; $users = $wpdb->get_results( "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = 'first_name' AND meta_value = 'Миша'" ); if( $users ) { foreach ( $users as $user ) { echo ''
. $user->user_id . ''; } } else { echo 'Пользователей с указанным именем нет в базе.'; }
Выводим ID всех пользователей с фамилией «Рудрастых»:
global $wpdb; $users = $wpdb->get_results( "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = 'last_name' AND meta_value = 'Рудрастых'" ); if( $users ) { foreach ( $users as $user ) { echo ''
. $user->user_id . ''; } } else { echo 'Пользователей с указанной фамилией нет в базе.'; }
6. Как вывести ID автора, опубликовавшего пост
В данном случае ID пользователя очень удобно вытаскивать из объекта поста. Сам объект поста можно получить различными способами:
get_post()
Функция get_post() очень удобна, когда нужно получить объект с информацией о конкретном посту:
$my_post = get_post( $id ); // $id - ID поста echo $my_post->post_author; // выводим ID автора указанного поста
WP_Query
Подробное описание этого класса и его параметров вы можете найти здесь. Данный пример выведет заголовки всех постов и страниц на блоге, в скобках после каждого заголовка будет указан ID автора, опубликовавшего пост:
$args = array( 'posts_per_page' => -1, 'post_type' => array('post','page') ); $query = new WP_Query( $args ); while( $query->have_posts() ) : $query->the_post(); echo $query->post->post_title . ' (автор: ' . $query->post->post_author . ')
'; endwhile; wp_reset_postdata();
7. Как узнать ID текущего пользователя
Функция get_current_user_id() возвращает ID текущего авторизованного пользователя WordPress:
$current_user_id = get_current_user_id();
Смотрите также
- get_user_by() — позволяет получить информацию о пользователе, если известен или логин, или ID, или email
- Используем e-mail вместо имени пользователя для входа на сайт
- WP_Query()
- get_current_user_id() — функция возвращает ID текущего пользователя
Миша
Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.
Пишите, если нужна помощь с сайтом или разработка с нуля.
Получить имя пользователя WordPress
Пишу плагин, и необходимо получить имя текущего пользователя. Подскажите пожалуйста как это сделать? Плагин уже установлен на сайт, осталось только вывести пользователя..
Отслеживать
задан 2 мая 2017 в 10:07
811 1 1 золотой знак 14 14 серебряных знаков 42 42 бронзовых знака
2 мая 2017 в 10:10
@br3t да, блин, печаль.. современные писатели плагинов и тем ни то, что про кодекс не знают, но даже не позравают о необходимости хотя бы загуглить используемые фунции.
2 мая 2017 в 10:35
Ну так я различные варианты пробовал — не получается. Решил тут помощи попросить
2 мая 2017 в 10:48
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Если нужен логин пользователя, то так:
echo wp_get_current_user()->user_login;
Код рабочий. В качестве проверки вставьте такой тест в самый низ functions.php, например:
function action_footer() < echo wp_get_current_user()->user_login; > add_action( 'wp_footer', 'action_footer' );
Отслеживать
ответ дан 2 мая 2017 в 10:12
KAGG Design KAGG Design
35.2k 4 4 золотых знака 24 24 серебряных знака 54 54 бронзовых знака
Fatal error: Call to undefined function wp_get_current_user()
2 мая 2017 в 10:50
Код правильный. Я даже его протестировал). Работает.
2 мая 2017 в 10:53
Я даже не представляю, как функция может быть не определена. А другие функции при этом работают?
2 мая 2017 в 10:54
А вы куда этот код добавили? В какой файл?
2 мая 2017 в 11:49
wp_get_current_user() находится в /wp-includes/pluggable.php, а этот файл подключается сразу после загрузки плагинов, но до события plugins_loaded. Поэтому нельзя вызывать эту и зависящие от нее функции прямо из кода плагина. Их нужно вызывать через хук plugins_loaded, init или позднее .wp-kama.ru/function/wp_get_current_user
Как изменить имя пользователя в WordPress

Способ 1. Создать нового пользователя и удалить старого
Это способ не особо очевиден, но зато его можно выполнить с помощью стандартных средств WordPress.
Переходим в раздел Пользователи -> Добавить нового и создаем нового пользователя с новым именем и email-адресом отличным от текущего.
Затем выходим из текущей учетной записи и заново входим, используя новое имя пользователя и пароль.
Снова возвращаемся в раздел «Пользователи» и жмём «Удалить» под именем старого пользователя.

На открывшейся странице отмечаем пункт «Связать всё содержимое», выбираем нового пользователя в выпадающем списке и жмём кнопку «Подтвердить удаление».

Теперь вы можете изменить email-адрес нового пользователя на старый и продолжить использовать сайт с новым именем.
Способ 2. Воспользоваться плагином Username Changer
Ещё один простой способ сменить имя пользователя — воспользоваться плагином Username Changer.
Устанавливаем и активируем плагин. Переходим в редактирование нужного пользователя и щёлкаем по ссылке «Изменить имя пользователя».

В появившемся поле вводим новое имя пользователя (1) и нажимаем кнопку «Сохранить имя пользователя» (2).

После сообщения об успешном изменении, повторно входим в админ-панель и наслаждаемся обновками.
Способ 3. Изменить имя пользователя напрямую в базе данных
Начинающим пользователям не рекомендуется самостоятельно что-то менять в базе данных, но если очень хочется…
Для доступа в базу данных обычно используется phpMyAdmin. Уточните в поддержке вашего хостинга как к нему подключиться.
Переходим в phpMyAdmin, выбираем базу данных сайта и находим таблицу оканчивающуюся на «users» (обычно, wp_users).

Два раза щёлкаем по имени пользователя в колонке user_login, вводим новое имя пользователя и жмём клавишу «Enter».

Теперь вы можете войти на сайт, используя новое имя пользователя.