最近一直想整理侧边栏,以前都觉得用widget比较方便,省去排版的繁琐。现在还是觉得sidebar单独写一下比较好,可以实现在主页和文章页面不同的显示。
关于侧边栏的友情链接部分,总想搞成图片和名称同时显示的效果,但是wordpress默认的显示确实有图片就只显示图片,无图片的时候只显示名称。在 Shawn
的帮助下今天终于解决了这个问题。
先看最终效果图:

要实现这个效果主要是要修改\wp-includes\下面的deprecated.php文件。
第一个地方是修改友情链接的输出方式,找到1029行附近
if ( $row->link_image != null && $show_images ) {
if ( strpos($row->link_image, ‘http’) !== false )
$output .= “<img src=\”$row->link_image\” $alt $title />”;
else // If it’s a relative path
$output .= “<img src=\”" . get_option(‘siteurl’) . “$row->link_image\” $alt $title />”;
} else {
$output .= $name;
}
这段话就是设置友情链接的输出方式,我们把上面的所有output改成
$output .= “<img src=\”http://www.google.com/s2/favicons?domain=” . $url . “\” $alt $title width=’16′ height=’16′ border=0 />” .$name;
你也可以直接用这句话替代上面的全部。这样显示的效果是不管有没有设置图片,都会去提取该链接在google缓存上的favicon。但是为了提取缓存favicon我们还要退提取的$url做一些处理。
找到1004行附近的
if ( !empty($row->link_url) )
$the_link = clean_url($row->link_url);
在这段话下面添加以下内容
$autArray = explode(“/”,$the_link);
$url = “” . $autArray[2];
这样提取的效果就是比如设置的网址是http://domain.com/blog,会只提取中间的domain.com方便提取google上面的缓存。
以上都是来自Shawn,实在感谢了,聊了半天才知道他是成都人,老乡无处不在啊。
好汗的方法啊,deprecated就是不推荐使用的意思……
管他黑猫白猫。。。也很感谢你对我博客的一大堆指导意见啊!
我改的是 bookmark-template.php
另,feedsky的跳转又坏了,你还是改一下罢
其实除开模板文件,改哪里都是不推荐的,毕竟升级之后还需重复劳作。
我看 Charles Tang 那里为此动用了 jQuery,其实也不太方便。
最方便的方式是写一个插件,去替换原来的方式。这样对今后的维护来说最方便。
现在友情链接相关的插件已经非常多了,随便建议哪个作者添加这么一个小功能到它的插件里面就可以解决。
比如?