Snippet for own (gr)avatars

时间:2012-06-27 作者:Charles

使用了以下代码段(效果很好),但生成了重定向链:(。

If (function_excists(\'basicgravatar\') 

 function basicgravatar ($avatar_defaults) {
   $myavatar = get_stylesheet_directory_uri() . \'/images/gravatar.png\'; //Child theme
   //$myavatar = get_bloginfo(\'template_directory\') . \'/images/gravatar.png\';  //Main theme
   $avatar_defaults[$myavatar] = "New default avatar";
   return $avatar_defaults; }

add_filter( \'avatar_defaults\', \'basicgravatar\' );
使用GTmetrix 其显示如下:

如果可能,请删除以下重定向链:http://0.gravatar.com/avatar/?d=http://oursite.com/media/wp-content/themes/our-child-theme/images/gravatar.png&s=40 和另外两行几乎相同的消息

使用上述代码后的结果也显示了这一点:

以下资源具有相同的内容,但来自不同的URL。从一致的URL提供这些资源,以保存2个请求和20.2KB。

评论越多,重定向越多
(上面的引号只显示了两(2)条评论和一个作者框后的结果,假设有50条或更多评论…)。。如何解决这个问题,无需编辑任何核心文件。

提前感谢您的时间和努力。

2 个回复
SO网友:Rarst

这就是gravatar服务的工作原理。

您的代码不知道特定电子邮件是否与gravatar关联。唯一的方法是查询gravatar API并存储是否每个电子邮件都有可用的gravatar(并重新查询更新),这样产生的功能将很快滚雪球般地过去,只需在那里重定向即可。

一个更实用的调整可能是为Gravatar实现延迟加载,所以在访问者实际滚动到Gravatar之前不会加载它们。

SO网友:Bainternet

我使用FV Gravatar Cache 通过以下方式解决此问题的插件:

使用WordPress cron作业缓存Gravatar在提交评论时缓存gravatar,为所有与nogravatar关联的电子邮件地址维护默认gravatar的单个副本,而不是一次又一次地下载它

结束

相关推荐

Redirection with a wildcard

我已将wordpress安装放在以下位置:http://www.mydomain.com/cms 测试时间,以及在数据库中实现的时间。现在我将整个事情切换到:http://www.mydomain.com/ (根)。如何才能告诉所有发送给/cms的请求都是/(root)。我知道htaccess可以做到这一点,但我更喜欢插件或者如何将安装从一个目录迁移到另一个目录?