显示自定义默认头像而不是gravatar

时间:2014-09-26 08:55:09

标签: php wordpress

我正在使用此自定义函数从我的服务器获取默认头像而不是gravatar:

if(!function_exists('custom_avatar')){
    function custom_avatar($avatar_defaults){
        $new_default_icon = 'http://localhost/gv/wp-content/images/mystery-man.png';
        $avatar_defaults[$new_default_icon] = 'Custom Avatar';
        return $avatar_defaults;
    }
    add_filter('avatar_defaults','custom_avatar');
}

但是自定义头像没有显示,当我查看源代码时,图像的src看起来像这样:

http://0.gravatar.com/avatar/a432e8915b383edd8d25c2a4fd5a6995?s=32&d=http%3A%2F%2Flocalhost%2Fgv%2Fwp-content%2Fimages%2Fmystery-man.png%3Fs%3D32&r=G&forcedefault=1

为什么我的图片src相对于gravatar?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

来自docs

  

当您添加默认图片时,Gravatar会自动提供   如果没有与所请求的电子邮件关联的图像,则该图像   哈希值。默认图像必须满足一些条件   网址:

     
      
  • 必须公开(例如,不能在Intranet上,本地开发计算机上,HTTP身份验证后面或其他防火墙上   等等)。默认图像通过安全扫描以避免   恶意内容。
  •   
  • 必须分别通过标准端口80和443上的HTTP或HTTPS访问。
  •   
  • 必须具有可识别的图像扩展名(jpg,jpeg,gif,png)
  •   
  • 不得包含查询字符串(如果有,则会被忽略)
  •   

因此,在您的情况下,您需要将图像不是http://localhost/而是放在某个公共主机上。