7 способов узнать ID пользователя в WordPress

Обзорная статья о том, как узнать ID пользователя WordPress в различных ситуациях.

Что такое ID пользователя? Это его уникальный идентификатор, используемый в различных функциях движка WP.

1. URL профиля пользователя в админке

Способ довольно простой, однако у него есть два минуса. Во-первых, вы должны быть авторизованы, во-вторых, вы не сможете узнать ID пользователя, под которым вы вошли.

Итак:

  1. Авторизуемся в админке и переходим в меню Пользователи > Все пользователи.
    Ссылка «Все пользователи» в меню
  2. Выбираем нужного нам пользователя из списка и переходим в его профиль.
  3. Смотрим на URL:
    ID пользователя в ссылке на его профиль

2. Добавление колонки с ID в список пользователей в админке

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

колонка с ID пользователей

Для того, чтобы установить такое на свой блог, достаточно вставить следующий код в 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 '<style>.column-user_id{width: 5%}</style>';
}
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 '<p>' . $user->user_id . '</p>';
    }
} 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 '<p>' . $user->user_id . '</p>';
    }
} 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 . ')<br />';
endwhile;
wp_reset_postdata();

7. Как узнать ID текущего пользователя

Функция get_current_user_id() возвращает ID текущего авторизованного пользователя WordPress:

$current_user_id = get_current_user_id();

Источник: misha.blog

Миша Рудрастых

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

Добавить комментарий

%d такие блоггеры, как: