清源绿里

最不受欢迎文章

如果 WordPress 安装有 Popularity Contest 插件,可以通过 akpc_most_popular 函数输出最受读者欢迎的日志。

但日志排名中一个重要元素就是点击率。调用“最受欢迎日志”吸引来的阅读量只会使这些日志的分数越来越高,永远“最受欢迎”。所以我觉得和 Random Post 相似,假若在博客显著位置按上“最不受欢迎日志”的列表,那么随着大家的点击,日志排名改变,列表内容列表也会不断更新,比“最受欢迎”更具意义。

修改方式:
打开 popularity-contest.php,加入

1
2
3
4
function akpc_least_popular($limit = 10, $before = '<li>', $after = '</li>') {
  global $akpc;
  $akpc->show_bottom_ranked($limit, $before, $after);
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function show_bottom_ranked($limit, $before, $after) {
  global $wpdb;
  $temp = $wpdb;

  $join = apply_filters('posts_join', '');
  $where = apply_filters('posts_where', '');
  $groupby = apply_filters('posts_groupby', '');
  if (!empty($groupby)) {
    $groupby = ' GROUP BY '.$groupby;
  }
  else {
    $groupby = ' GROUP BY '.$wpdb->posts.'.ID ';
  }

  $posts = $wpdb->get_results("
  SELECT ID, post_title FROM $wpdb->posts LEFT JOIN $wpdb->ak_popularity pop ON $wpdb->posts.ID = pop.post_id $join WHERE post_status = 'publish' AND post_type = 'post' AND post_date < NOW() $where $groupby ORDER BY pop.total ASC LIMIT "
.intval($limit) );
  if ($posts) {
    foreach ($posts as $post) {
    print( $before.'<a href="'.get_permalink($post->ID).'">' .$post->post_title.'</a>'.$after);
    }
  }
  else {
    print($before.'(none)'.$after);
  }
  $wpdb = $temp;
}

原理很简单,只是输出了倒序的日志排名。在需要显示的页面加入:

1
2
3
/?php if (function_exists('akpc_least_popular') ) { ?/
/?php akpc_least_popular('8'); ?/
/?php } ?/

您可以根据自己的喜好把“8”改为需要的数字。

请注意将上面所有代码中的”/?”改成”<?”,”?/”改成”?>”。

Leave a Comment