Custom Gravatar not working

时间:2014-08-28 作者:Anindya Basu

我正在尝试将一个自定义Gravatar上传到Wordpress,但是有些东西破坏了图像链接,我不知道如何修复它。

add_filter( \'avatar_defaults\', \'new_default_avatar\' );

function new_default_avatar ( $avatar_defaults ) {
    //Set the URL where the image file for your avatar is located
    $new_avatar_url = get_bloginfo( \'template_directory\' ) . \'/img/icons/avatar.jpg\';
    //Set the text that will appear to the right of your avatar in Settings>>Discussion
    $avatar_defaults[$new_avatar_url] = \'New Default Gravatar\';
    return $avatar_defaults;
}
代码可以工作,因为我得到了一个单选按钮,可以选择添加Gravatar。唯一被破坏的是真实的图像。

当我右键单击图像时,我得到以下URL:

http://i2.wp.com/localhost/wordpress/wp-content/themes/blog-theme/img/icons/avatar.jpg

我不知道我在哪里。wp。com的来源,或者它正在做什么。当我移除它并执行

loalhost:888/wordpress/wp-content/themes/blog-theme/img/icons/avatar。jpg公司

我可以看到Gravatar的图像。

当我在google上搜索时,我发现很多人都有这个问题,因为Jetpack和Photon插件,但我没有安装任何插件。

2 个回复
最合适的回答,由SO网友:birgire 整理而成

我认为问题很简单,你的默认化身不是publicly available.

例如,尝试

http://upload.wikimedia.org/wikipedia/en/b/b0/Avatar-Teaser-Poster.jpg

而不是

http://loalhost:888/wordpress/wp-content/themes/blog-theme/img/icons/avatar.jpg
请注意,默认的gravatar是通过http{|s}://i{0,1,2}.wp.com/...

From the docs:

当您包含默认图像时,如果没有与请求的电子邮件哈希相关联的图像,Gravatar将自动提供该图像。默认图像URL必须满足>几个条件:

必须是公共可用的(例如,不能位于intranet、本地开发机器、HTTP Auth或其他防火墙等后面)。默认图像通过安全扫描传递,以避免恶意内容

  • 必须具有可识别的图像扩展名(jpg、jpeg、gif、png)
  • 不得包含查询字符串(如果包含,将被忽略)
    SO网友:Robert hue

    这是因为您在JetPack插件中启用了光子插件。这就是为什么你的图片URL会像。。。

    > http://i0.wp.com/image-url
    > http://i1.wp.com/image-url
    > http://i2.wp.com/image-url
    
    您将获得这三个URL中的任意一个。这是WordPress的免费CDN服务。这很好。

    问题是您正在本地主机上尝试它,这就是为什么它不起作用。因为WordPress CDN或任何其他CDN都无法从本地主机提取图像。您应该在联机服务器上尝试。只需禁用光子,一切都会好起来:)

    建议不要在本地主机上打开CDN服务。你会出错的。

    EDIT: 默认情况下,它应该有。。。

    http://0.gravatar.com/avatar/...
    
    但在你的情况下http://i2.wp.com/ 这一定是由插件或您在函数中添加了一些代码引起的。php。

    是否在函数中添加了代码。php返回所有图像http://i2.wp.com/. 这也必须是一种情况。

    结束