Отображение аватара профиля пользователя при входе в систему

31 дек. 2014 г., 09:14:28
Просмотры: 25.5K
Голосов: 1

Я пытаюсь отобразить аватар/изображение профиля пользователя при входе в систему, но когда я использую это:

 <?php
    global $current_user;
    get_currentuserinfo();     // получить информацию о текущем пользователе
    echo get_avatar( $current_user->ID, 64 );

?>

отображается default_avatar_male.jpg, но я не хочу, чтобы что-либо отображалось, если пользователь не авторизован. Спасибо за помощь.

0
Все ответы на вопрос 2
2

Передайте email текущего пользователя в функцию get_avatar(), если пользователь авторизован, вот так:

<?php 
if ( is_user_logged_in() ) {
    $current_user = wp_get_current_user();
    if ( ($current_user instanceof WP_User) ) {
        echo 'Добро пожаловать: ' . esc_html( $current_user->display_name );
        echo get_avatar( $current_user->ID, 32 );
    }
}
31 дек. 2014 г. 15:13:44
Комментарии

Я также попробовал ваш код, и он работал так же хорошо, как и код Rohil_PHPBeiginner выше. Мой дополнительный вопрос, который я задал выше: как я смогу отобразить это как: Добро пожаловать, Том "изображение профиля"?

Dave_O Dave_O
31 дек. 2014 г. 19:42:12

Эй, пожалуйста, проверьте измененный ответ выше

Amit Mishra Amit Mishra
1 янв. 2015 г. 08:38:45
2

Вы можете обернуть этот код в условие, что если пользователь авторизован, то показать аватар профиля, и для этого можно использовать функцию WordPress is_user_logged_in.

Таким образом, ваш код будет выглядеть примерно так:

<?php
    global $current_user;
    if ( is_user_logged_in() ):
        get_currentuserinfo();     
        echo get_avatar( $current_user->ID, 64 );
    endif;  
?>
31 дек. 2014 г. 09:30:22
Комментарии

Отлично! Это сработало. Как я могу отображать имя пользователя, например, в таком формате: "Добро пожаловать, Том" [изображение профиля]? Еще раз спасибо.

Dave_O Dave_O
31 дек. 2014 г. 19:37:08

Вы можете использовать wp_get_current_user.

Rohil_PHPBeginner Rohil_PHPBeginner
1 янв. 2015 г. 08:22:56