免插件活跃链接与活跃好友

之所以写这个标题,是想将友情链接与好友区别开来。

博客是一个圈子,友情链接是一个纽带。而除了友情链接,还有一些未加链接的朋友也会成为常客。相比之下,有些友链的活跃程度还比不上那些未加链接的朋友。

所以有些博客的链接分首页和内页,首页上只显示最近活跃的友链。这个首页显示活跃友链的功能可以通过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;
?>
最终的效果:

或许您还对这些文章感兴趣:

有一所人人都可以上的大学:


自定义搜索

Leave a Reply to Vastar (27 Responses)


Leave a Reply


:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!:

  • Research papers by P. Zhang

评论

  • 正在加载...