用户头像Wordpress Php

时间:2013-03-30 22:07:04

标签: php wordpress avatar

我不擅长php ...当用户没有登录时我试图显示匿名图标并在登录时显示用户头像...以下是我获取的代码(wordpress install btw)< / p>

<div id="useravatar">
<?php
global $current_user;
if (!is_user_logged_in()) {
echo "<img src='"http://www.curious-howto.com/images/anonymous.jpg"'/>";
}
else { get_currentuserinfo();
   echo get_avatar( $current_user->ID, 32 ); }
?>
</div>

但是这不起作用...有人可以指出我做错了,谢谢你,谢谢你们,非常感谢:)

2 个答案:

答案 0 :(得分:1)

由于没有答案,这会在Google上弹出......

img标签中不应该有双引号。这打破了PHP。

echo "<img src='"http://www.curious-howto.com/images/anonymous.jpg"'/>";

应该是

echo "<img src='http://www.curious-howto.com/images/anonymous.jpg'/>";

答案 1 :(得分:0)

@Guyra指出引用错误,我还注意到自{WordPress 4.5以来get_currentuserinfo已被弃用。

您可以挂钩get_avatar功能并修改functions.php文件中的输出。使用get_avatar更好,如果用户已知,它将检索用户头像,如果不知道则使用灰色人。通过挂钩功能,您可以修改它并更改它与未知人员的工作方式:

add_filter( 'get_avatar','get_custom_avatar' , 10, 5 );
function get_custom_avatar($avatar, $author, $size, $default, $alt) {
  if(stristr($author,"@")) $autore = get_user_by('email', $author);
    else $autore = get_user_by('ID', $author);

  if (isset($autore->ID) && $autore->ID > 0) {
      // known people
      return $avatar;
  } else {
      // unknown user
      $avatar = "http://www.curious-howto.com/images/anonymous.jpg";
      return "<img class='avatar' alt=\"".$alt."\" src='".$avatar."' width='".$size."' />";
 }

}

Got this code and modified from here,也可以使用其他服务而不是Gravatar来生成头像。