之所以写这个标题,是想将友情链接与好友区别开来。
博客是一个圈子,友情链接是一个纽带。而除了友情链接,还有一些未加链接的朋友也会成为常客。相比之下,有些友链的活跃程度还比不上那些未加链接的朋友。
所以有些博客的链接分首页和内页,首页上只显示最近活跃的友链。这个首页显示活跃友链的功能可以通过magic links插件实现。
读者墙早就有非插件版本,用以显示活跃的留言者。
但是这两大块会有交集。友链质量越高,交集就会越大。所以我想将友链与好友区别开来,让友情链接显示活跃友链,读者墙则显示那些活跃的非友链(这些也是未来的友链发展目标)。两者都按照一定时期内(比如通常采用的30天)的留言数目从多到少排列。
在瀚海星尘的侧边栏上已经实现了这一点。只要最近30天内友链留下哪怕一条留言,就会上首页。而读者墙则跟大家广泛使用的一样,取30天内留言数的前10名显示,只不过将友链排除掉了。
代码:
< ?php $counts = $wpdb->get_results("SELECT COUNT(comment_author) AS cnt, comment_author, comment_author_url, comment_author_email FROM (SELECT * FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->posts.ID=$wpdb->comments.comment_post_ID) WHERE comment_date > date_sub( NOW(), INTERVAL 1 MONTH ) AND user_id='0' AND comment_author != 'Vastar' AND post_password='' AND comment_approved='1' AND comment_type='') AS tempcmt GROUP BY comment_author ORDER BY cnt DESC"); //Vastar是博客所有者,排除掉 $linkcats = $wpdb->get_results("SELECT T1.name AS name FROM $wpdb->terms T1, $wpdb->term_taxonomy T2 WHERE T1.term_id = T2.term_id AND T2.taxonomy = 'link_category'"); $i=0; foreach($linkcats as $linkcat){ $bookmarks = get_bookmarks('orderby=rand&category_name=' . $linkcat->name); foreach ($bookmarks as $bookmark) { $links[$i++]=$bookmark; } } $k=0; $l=0; $active_links=array(); foreach ($counts as $count){ $j=0; $c_url = $count->comment_author_url; if ($c_url == '') $c_url = 'http://vastars.info'; foreach ($links as $link) { preg_match('@^(?:http://|https://)(?:www.)?([^/]+)@i', $link->link_url, $l_url); $pattern_url='/'.$l_url[1].'/i'; if (preg_match($pattern_url, $c_url)) { $j=1; $add=1; foreach ($active_links as $active_link) { if (preg_match($pattern_url, $active_link)) $add=0; } if ($add == 1){ $active_links[$l++]=$c_url; $mostactive_l .='<a href="' . $link->link_url . '" title="' .$link->link_description. '" target="_blank" style="color:#848484">' . $link->link_name . '</a>'. ' '; } } } if ($j == 0 && $k < 10){ //取前10名 $k++;$mostactive_f .='<a href="'. $c_url . '" title="' . $count->comment_author . ' ('. $count->cnt . 'comments)" target="_blank">' . get_avatar($count->comment_author_email, 35) . ''; } } $mostactive_f='<h4>Active Friends</h4>'.$mostactive_f; $mostactive_l='<h4>Active Links</h4>'.$mostactive_l; echo $mostactive_f; echo $mostactive_l; ?>
最终的效果:

我留出一大块侧边栏空间给友情链接
因为自己也经常想到博友的站上看看,所以倒不需要这个插件和功能。
已经单方面加上博主的链接:)
呵呵。各有所需。我也加上链接了。
是放在侧边栏吧,我也想折腾一个呢。
呵呵。放哪里都可以啊。我方侧边栏。
呵呵,你这个思路不错。
嘿嘿,举一反一。
呵呵,这个弄得不错
哈哈。小折腾下。
我一直都是内么活跃。。
那是啊。飞猪在哪里都是那么活跃吧….
是么是么。。。
这个改版不错,提高了互动的积极性啊~
现在连博客圈的友链也越来越像SNS发展了,哈哈
特意google了一把sns。。。不过很快就明白了
现在研究无插件实现XXX的人越来越多了啊,很多博友可以享福了,哈哈~插件愈多愈慢的道理相信大家也懂的
这个不错,感觉比较公平。。
我的博客这两天老是500,杯具。。。
呃。都一样。最近不知怎的。再这样下去atb就要废了。
好东西 可以整合懂啊我的站上去 哈哈
哈哈。可以试下哈
其实感觉就是读者墙 .
呵呵。别样的读者墙。
这个功能还是不错的
另外提醒你一下,你的博客在the world浏览器中边栏的排版有问题
多谢再次提醒。我对这种兼容性问题束手无策。而且我也没有世界之窗,不知道乱成怎样了。话说我的IE下都没问题….
嘿嘿,我来活跃一下。
最好能上活跃榜~哈哈
把这个放里面是不是就你那种效果?
这个段代码只能实现文中图片上的活跃链接和活跃好友的输出。如果你所指的的是我侧边栏上的tab切换效果,则还要进一步处理。
看参照这篇文章:http://immmmm.com/jquery-tab-switch-code-improved.html
这个很多人都在用了