携子之手,与子偕老

修正WordPress评论者Gravatar图像显示问题

技术文档 6643浏览 0评论

从某个时候,发现博客的评论者的Gravatar图像显示有些问题,如下图,主要表现为图像不能显示。最主要的是我自己的图像都不能显示了,很难看。

一开始我以为是Gravatar的部分服务器被“挡住”了,于是用了Gravatar Fixed 头像修正插件,发现问题依旧。

到别人网站上看了一下我的评论,发现图像是正常的,即显示了系统默认的图像,因为我的Email地址一直都没有绑定Gravatar图像的。于是再细致一点检查了自己的网站,发现是Email地址没有绑定Gravatar图像的那些用户的图像显示不正常,其他的都是正常的。但理论上这现象应该是不正常的,因为我在wp系统中设置了默认图像的,没有绑定Gravatar图像的用户应该是会显示默认图像的。

由于我使用了Willin Kan的Gravatar缓存功能代码,所以就禁用了缓存功能,发现显示是正常的,这时基本排除了其他方面的问题,专心回到这段功能代码上。

里面有一句代码如下:

if ( empty($default) ) $default = $w. '/avatar/default.jpg';

即没有绑定Gravatar图像的时候,显示系统默认的图像,代码是没有问题的。同时又发现了一个小问题,即鼠标滑过图像的时候,不能显示评论者的网名,而我的代码中是有实现这个功能的。出现这两个问题,那么可能是代码调用时有bug了。

再看看我函数的调用方式:my_avatar($comment->comment_author_email, $size = '32',$alt=$comment->comment_author)

原函数为:function my_avatar_cache( $email, $size = '42', $default = '', $alt = '' )

问题就出在红色部分了,我的本意是想略去$default参数的,因为函数中有相应的默认处理;通过$alt=直接给$alt变量赋值,结果函数却将$comment->comment_author的值赋给了$default,而这本应该是赋给$alt的,找到了问题就好办了,于是修改一下调用方式:

my_avatar($comment->comment_author_email, $size = '32','',$comment->comment_author)

效果如下图所示,问题得到解决:

转载请注明:自由的风 » 修正WordPress评论者Gravatar图像显示问题

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (4)

  1. 学习了 我回去也改造改造~~

    iSayme2011-06-25 09:01 回复
  2. 我现在也遇到这个问题

    feizei2012-10-09 15:33 回复
  3. 搬个家,恢复后也发现同样的问题…

    追梦无痕2013-11-07 16:38 回复
  4. 我的这时的图片也显示不了,可是这个教程我看不懂。

    WEB学习吧2014-07-05 20:17 回复