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


Show custom default avatar instead of gravatar

我使用这个自定义函数从我的服务器中获取默认化身,而不是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在这里?如何解决此问题?

来自文档:

当您包含默认图像时,Gravatar将自动提供如果没有与请求的电子邮件相关联的图像,则显示该图像搞砸默认图像必须满足以下几个条件网址:

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

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