最近在整理友链页面,之前一直没有弄ICO图标,本着美化效果就尝试着添加。
最开始使用的方式是,设定一张默认的 links_default.ico 图片,先在网站里找根目录下的Favicon.ico文件,没有就显示默认的links_default.ico
代码如下:
<?php
$default_ico = get_template_directory_uri().'/images/links_default.ico'; //默认 ico 图片位置
$bookmarks=get_bookmarks(array(
'orderby' => 'name',
'order' => 'ASC',
'category' => '1091'
));
if ( !empty($bookmarks) ){
echo '<ul class="link-content clearfix">';
foreach ($bookmarks as $bookmark) {
echo '<li><span class="sitename">
<img width="16px" height="16px" 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></span></li>';
}
echo '</ul>';
}
?>
但是这样有一个问题,有些站点的Favicon.ico并不在根目录,所以尝试着找其他办法。
找到Google有API获取接口,奈何天朝访问不友好。
http://www.google.com/s2/favicons?domain=http://www.baidu.com
那就给他握个手,
https://go.shabi.one/fly/https://www.google.com/s2/favicons?domain=http://www.dalao.net
获取到了。
可是这就很依赖握手工具了,不行不行,继续搞。
最后,用上了这个 https://github.com/jerrybendy/get_favicon
效果还行,如果无法访问的链接基本上图标会变成圆的地球,更方便在直观管理失效链接。