2015-09-24 5 views
0

Спасибо Rene Korss за то, что помогли решить проблему почти и быть там каждый раз, чтобы ответить в обсуждении.Проверьте, есть ли у пользователя граватар [WordPress]

Я хочу проверить, есть ли у пользователя, который отправил комментарий, аватар или нет? Если у пользователя есть аватар (значит есть учетная запись gravatar), show gravatar avatar еще показать изображение, которое я определил в другой части. Любая помощь будет назначена.

В настоящее время я использую этот код:

if(get_avatar()==1) 
      { 
       echo get_avatar($comment,$size='48',$default='<path_to_url>'); 
      } 
     else 
      { ?> 
       <img src="<?php bloginfo('template_directory'); ?>/img/admin.jpg" alt=""><?php 
      } ?> 

Выход для этого кода только еще часть работает. И в случае, если я пишу условие как if(get_avatar()), тогда только если часть работает.

$ коментарий имеет значения:

stdClass Object ( 
[comment_ID] => 9 
[comment_post_ID] => 104 
[comment_author] => Navnish 
[comment_author_email] => [email protected] 
[comment_author_url] => 
[comment_author_IP] => 118.146.54.35 
[comment_date] => 2015-09-23 14:33:11 
[comment_date_gmt] => 2015-09-23 14:33:11 
[comment_content] => this is comment by Admin 
[comment_karma] => 0 
[comment_approved] => 1 
[comment_agent] => Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0 
[comment_type] => 
[comment_parent] => 0 
[user_id] => 1 
) 

При использовании этого кода:

<?php 
$avatar = get_avatar(get_the_author_meta('ID'), $size = '48', $default = bloginfo('template_directory').'/img/admin.jpg'); 
if($avatar !== false) 
{ 
echo $avatar; 
} 
?> 

Got выход так:

enter image description here

Выход для:

$avatar = get_avatar($comment->comment_author_email, $size = '48', $default = bloginfo('template_directory').'/img/admin.jpg'); 
if($avatar !== false) 
{ 
    echo $avatar; 
} 

является: enter image description here

+0

Покажите нам, как вы получаете '$ comment'. –

+0

$ comment - это объект stdClass. Я обновил значение $ comment в вопросе –

ответ

2

Попробуйте с этим. Использование электронной почты автора должно помочь. Также обратите внимание, что я не звоню get_avatar дважды. else не требуется, потому что вы можете установить $default изображение для использования, если аватар не существует.

$avatar = get_avatar($comment->comment_author_email, $size = '48', $default = bloginfo('template_directory').'/img/admin.jpg'); 
if($avatar !== false) 
{ 
    echo $avatar; 
} 
+0

Ошибка.Обновлен вопрос с выходом этого кода. Пожалуйста, взгляните на него. –

+0

Это не ошибка. Это похоже на URL-адрес аватара? Но это не должно. Что недостает изображений 'src'? –

+0

Tried img src. Но работает только мое определенное изображение. Граватар-автар не работает. Вы можете сказать, что его возвращение, как и результат, для кода, который мы использовали в начале. –

0

get_avatar() получить аватар для пользователя, который предоставил идентификатор пользователя или адрес электронной почты. Он возвращает true, если аватар существует.

if(get_avatar($comment)) 
{ 
    echo get_avatar($comment,$size='48',$default='<path_to_url>'); 
} 
else 
{ ?> 
<img src="<?php bloginfo('template_directory'); ?>/img/admin.jpg" alt=""><?php 
} 
+0

Еще только IF раздел работает так же, как если бы (get_avatar()) –

+0

Как вы получаете $ comment –

+0

Использование функции в качестве аргумента. Я обновил значения рассматриваемого комментария. –

0
if(get_avatar('user_id')==1) 
      { 
       echo get_avatar($comment,$size='48',$default='<path_to_url>'); 
      } 
     else 
      { ?> 
     <img src="<?php bloginfo('template_directory');>/img/admin.jpg" alt=""><?php 
      } ?> 

Использование get_avatar('id') вместо get_avatar() использовать некоторые ID

+0

Когда я пишу if (get_avatar() = 1), он ничего не возвращает. Сайт перестает работать в этом случае. complete Только белая страница –

+0

Я уже использую этот код. Как показано в вопросе. –

+0

попробуйте сейчас ... обновленный код – avktech

Смежные вопросы