解决 Google Favicon 缓存服务失效的办法

2013.05.23 54 Comments 32,895 次阅读

Google Favicon缓存服务失效如何解决

昨天看了下我的友情链接内页,发现 Google 的 Favicons 缓存全部无法获取,简单复制了下链接看了一下,发现缓存服务全部重定向到了plus.google.com,这是神马域名我相信大家都很清楚了,一直被墙,所以就无法显示了。为了保证我们的favicon能够完全显示,这里提供两种解决思路。

1、利用其它第三方 favicon 缓存服务商

getFavicon的接口比较全,支持http,https,不过他缓存的favicon很少,因为需要网站自己提交上去的才能被缓存。
接口文档:http://g.etfv.co/

2、利用网站自身的 favicon

大家都知道,favicon.ico图标一般都在网站的根目录下,所以我们要做的是遍历每个友情链接地址下面的/favicon.ico,如果获取不到的我们就用一张默认的gif进行显示。

在你的友情链接模版(或者你需要用到这个缓存服务的地方)找到内容输出函数 ,在其下面加入下面的代码,注意看代码注释:

<div class=”page-links”>
<h3>页内链接</h3>
<ul>
<?php
$default_ico = get_template_directory_uri().’/images/links_default.gif’; //默认 ico 图片位置
$bookmarks = get_bookmarks(‘title_li=&orderby=rand’); //全部链接随机输出
//如果你要输出某个链接分类的链接,更改一下get_bookmarks参数即可
//如要输出链接分类ID为5的链接 title_li=&categorize=0&category=5&orderby=rand
if ( !empty($bookmarks) ) {
foreach ($bookmarks as $bookmark) {
echo ‘<li><img src=”‘, $bookmark->link_url , ‘/favicon.ico” onerror=”javascript:this.src=\’’ , $default_ico , ‘\’” /><a href=”‘ , $bookmark->link_url , ‘“ title=”‘ , $bookmark->link_description , ‘“ target=”_blank” >’ , $bookmark->link_name , ‘</a></li>’;
}
}
?>
</ul>
</div>

嗯,就是这样,搞定了。当然你可以调试一下CSS,限制Favicon.ico图片显示的大小,因为每个网站的默认Favicon都是大小不统一的...
也可以学习我的友情链接页面:https://www.aips.me/links 直接裸装上场,去掉了所有的Favicon图标。

54 Responses
Comment (24)
Trackback (0)
  • 还没有Trackback
Leave a Reply