0

我试图在用户未登录时显示匿名图标,并在用户登录时显示用户头像......这是我得到的代码(wordpress install btw)

<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>

但这不起作用...

有人可以指出我做错了什么吗?

4

2 回答 2

1

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

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

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

应该

echo "<img src='http://www.curious-howto.com/images/anonymous.jpg'/>";
于 2016-02-22T08:19:55.010 回答
0

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

您可以挂钩该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."' />";
 }

}

得到这段代码并从这里修改,还有一些变体可以从不同的服务而不是 Gravatar 获取生成的头像。

于 2017-04-05T14:13:11.383 回答