显示评论者、友情链接 favicon 的新方法

Wizard显示评论者 Gravatar 头像、网站 favicon 是老肥博客一贯的做法,得到过不少朋友的称赞。favicon 的显示调用是我 自己摸索 的,实际运用起来问题比较多,比如:没有 favicon, favicon.ico 不在根目录,尺寸太大,或者评论者留下的是 www.awflasher.com/blog 这样的带有小尾巴的地址,都会导致显示错误。

前两天 Shawn 提示我 Google 有一个隐藏的 favicon 缓存服务可以完美解决这个问题,果然非常棒,现在分享给大家。这个缓存调用的地址是:

http://www.google.com/s2/favicons?domain=fis.io

简单吧?这个查询得到的是一个 png 图像,如果没有对应的 favicon, 则缺省是一个地球图标。WordPress 插件 Favicon Images for Comments 是最简单的用法,不过样式反正要自己改,喜欢动手的朋友、非 WordPress 的朋友请看下面的教程。

这个查询要求不能带有 http, 而域名后面无论跟什么都无所谓。所以首先要把评论者网址前的 http 过滤掉,例如 中文 WordPress 工具箱,在显示最新评论的循环语句 foreach ($comments as $comment) 下面添加一个 $domain 定义:

$domain = preg_replace('/^http:///', '', $comment->comment_author_url);

得到的 $domain 就没有前面的 http 了。然后把它用到输出去:

$output .= $before . '<img src="http://www.google.com/s2/favicons?domain=' . $domain . '" class="favicon" /><a href="' . $permalink . '" title="' . $comment_excerpt . '">' . $comment_author . '</a> ' . $comment_excerpt . $after;

这是我的例子,提供一个参考。我发现这样写还是很难看懂……呵呵,就当个参考吧。我把我的侧栏最新评论、本周嘉宾、友情链接都改成了这个显示方式,欢迎参观 😀

最后,希望有博客的朋友都检查一下自己的根目录下是否有 favicon.ico 这个文件,yo2 用户好像也可以通过一个专用插件来上传它。这样您的博客可以在这里得到丰富的展示,happy blogging!

据博友 冰古 的测试,Google 的 favicon 缓存服务并不是直接获取根目录下的 favicon.ico, 而是需要 html header 里面含有:

<link rel="shortcut icon" type="image/x-icon" href="http://fis.io/favicon.ico" />

如果图标不对,一定要检查一下这里。谢谢冰古!

最新评论

  • 高午饭 博主现在的社交网络有么,想关注您呢 我为什么爱 Twitter
  • 西贝博客 很好的建议!谢谢分享! 如何为 blog 建立一个高效的标签系统
  • 苹果 老罗露脸了,哈哈,支持他现在的事业 我为什么爱 Twitter
  • 飞之梦 不错,第一次看到这些效果,以后要用一用了。 CSS 文字阴影在网页设计中的应用
  • QQ地带 大牛,pansou也是用的ajax search,为什么他不会被墙呢,因为他调用的地址是ip,不是直接的谷歌域名。请问怎么实现。 打造完美的 ajax 版 Google 自定义搜索

发表您的评论

您的评论将回复给 原评论者

:D:):O8):(8D;DXD:P:nice::rainbow::cafe::love::cake:

目前有 75 条评论

  

效果好像会不错,测试下先 :p

呵呵,头像+ICO,不错 :rainbow:

这个赞啊!

来测试下! 😀

太强大了。

我怎么出来的是截图。

没有 gravatar 就显示网站截图... 哈哈

你的 favicon 是正常的哟

Google Profile应该就是用的这个来调用用户网络服务地址的favicon的

看了一下,果然……

因为那个地球很熟悉 哈哈

正准备搬来合租主机。。可以学学了

好主意~~

哈,老肥又有新武器了!

真的好强大!

不知道别的博客程序可行不?

和博客程序没有关系,只是一个固定查询,就能获得图片呀

看来PHP的书我还需要再多看几遍

好强好强

加小图标显的很可爱...不过页面调用的外部数据太多了...

这个还好,一般来说,google.com 能保证访问,图标也都统一过格式了

比以前我直接读取对方 ico 文件的做法其实好很多,直接读取如果遇到文件不存在,有时候会卡很久……

真的是哦...哈哈...我真粗心! 😀 ...

不过话说,效果还真不错^^

:p 嘻嘻,找到新的方法了...不错不错...

💡 ...显示不正确的.

你的博客刚才不能访问?而且

http://www.google.com/s2/favicons?domain=happines.cn

本来就没有读取到你的图标...

大哥,你自己的域名都写错了……嗯

我说呢,我点了一下还以为你当机了呢,哈哈,帮你改了一下

他网址写错了。。。

我汗……还是你眼亮,哈哈

啥意思啊?

在右侧栏显示评论者 favicon... 以前的显示方式是直接读取对方的 /favicon.ico, 现在是用 Google 的缓存

教我。。。

yo2 开放插件上传了没?如果没有的话,可以把函数写在主题里面……

这个不错 ico统一格式 哈哈
另外yo2 没有开插件上传

测试一下~
有这个GOOGLE缓存服务判断下非空截下字符串输出图片就OK了吧

对的,甚至非空都不用去判断,输出那个默认的地球图标其实也挺好的。。

我来测试一下Gravatar...

超强啊 :p

那些图标都是这样来的啊

我用这个几天了,还是发现了些问题,缓存有时候会错乱,显示成别人的 favicon... 不知道是不是我一人的问题

再顶一贴,看到我的ico了

友情帮你测试下。

挖,ExpReg~

555是个地球
难道是我拼错了RegExp。。。

rpwt~

不知道为啥,我的明明有favicon,却显示地球。

跟大猫一样,难道 .ico 格式上有问题...

没吧。firefox上显示挺好的。

貌似我找到原因了,因为我的页面中没有添加这个标签,看了几个“地球”的,都是没有加上的,而不是“地球”的就都有这个标签。

添加上了,等待谷歌的更新。

header 里面的这句对吧?

<link rel="shortcut icon" type="image/x-icon" href="http://fisio.cn/favicon.ico" />

呵呵,我测试了几个朋友的博客,的确如此,Google并不是找根目录下的 favicon.ico, 而是找这句定义。呵呵,谢谢提醒 😀

还是显示“小地球”难道不是那个原因?

汗……果然还没有更新 再次怀疑 ico 文件的格式问题

我的是什么图片??

没有 favicon

试试我的显示不啦

favicon 没有显示,检查一下吧……

我用了这个方法,好多人的都没有显示出来,奇怪了

当然显示不出来咯,因为我的域名你都写错...-___-

靠,我晕死了,我每次上你的博客都是手敲域名的,竟然还会打错,唉,老了

哈哈,我也链你了

不错,学习了.

不过这张皮下好象没有效果...

你说你的blog? 我看了一下,你根本就没有输出这个图标啊 -_-

很不错,分享了!!!

调用方式最近又更新过了...

试下我的新favicon :p

还没更新 😮

我要做个小白鼠,先下载下慢慢弄去 :rainbow:

不需要下载什么东西吧

这个不会弄啊,只能下载个插件瞎折腾咯

最喜欢的就是你博客里的这个功能,呵呵。

好复杂。。。

评论好多

不错,我考虑要不要弄到我的blogger.com系统上。

wow beautiful~ :rainbow:


有 1 篇其他博客的文章引用了本文

  1. 08年9月15日谷歌的favicon缓存服务 | 冰古blog