使用WP-Postviews显示近期的热门文章
在我的博客里一直都是使用WP-Postviews插件来统计文章点击数,以及用来显示热门文章。WP-Postviews显示热门文章的函数是get_most_viewed,也可以通过调用get_least_viewed函数来显示最新被浏览的文章。
get_most_viewed显示所有点击最高的文章,并无时间上的限制,而get_least_viewed虽然可以显示近期的点击文章,但不可以设置相应的统计时间,只能是按照插件的默认时间算法来显示,所以如果要显示近一年或半年内的热门文章这两个函数是无法满足的。从WP-Postviews 1.30版本后就取消了一个补充函数get_timespan_most_viewed,这个函数可以显示特定时间内的热门文章,刚好是我想要的。只要把这个函数重新拷贝到WP-Postviews插件的wp-postviews.php文件内就可以使用了。

### Function: Get TimeSpan Most Viewed - Added by Paolo Tagliaferri (http://www.vortexmind.net - webmaster@vortexmind.net)
function get_timespan_most_viewed($mode = '', $limit = 10, $days = 7, $display = true) {
global $wpdb, $post;
$limit_date = current_time('timestamp') - ($days*86400);
$limit_date = date("Y-m-d H:i:s",$limit_date);
$where = '';
$temp = '';
if(!empty($mode) && $mode != 'both') {
$where = "post_type = '$mode'";
} else {
$where = '1=1';
}
$most_viewed = $wpdb->get_results("SELECT DISTINCT $wpdb->posts.*, (meta_value+0) AS views FROM $wpdb->posts LEFT JOIN $wpdb->postmeta ON $wpdb->postmeta.post_id = $wpdb->posts.ID WHERE post_date < '".current_time('mysql')."' AND post_date > '".$limit_date."' AND $where AND post_status = 'publish' AND meta_key = 'views' AND post_password = '' ORDER BY views DESC LIMIT $limit");
if($most_viewed) {
foreach ($most_viewed as $post) {
$post_title = get_the_title();
$post_views = intval($post->views);
$post_views = number_format($post_views);
$temp .= "<li><a href=\"".get_permalink()."\">$post_title</a> - $post_views ".__('views', 'wp-postviews')."</li>";
}
} else {
$temp = '<li>'.__('N/A', 'wp-postviews').'</li>'."\n";
}
if($display) {
echo $temp;
} else {
return $temp;
}
}
$days这个参数是多长时间内发表的文章,我在Single页面设置为180天,就是半年内的热门文章,而在首页则输出全部时间的热门文章。如果想在博客后台看到文章的点击数可以把以下代码(via 水煮鱼)放到WP-Postviews插件目录的wp-postviews.php文件或者你主题的function.php文件中。
add_filter('manage_posts_columns', 'postviews_admin_add_column');
function postviews_admin_add_column($columns){
$columns['views'] = __('Views');
return $columns;
}
add_action('manage_posts_custom_column','postviews_admin_show',10,2);
function postviews_admin_show($column_name,$id){
if ($column_name != 'views')
return;
$post_views = get_post_meta($id, "views",true);
echo $post_views;
}







这个是不好似也可以用中文工具箱调用热门文章??..
沙发。。
这个太复杂了,用WP-PostViews Plus即可解决这些问题
我搬家后之前的文章统计都归0了。。还是算了
我没有统计过访问量,而且安了WP-PostViews plus后,页面不能通过W3C的xhtml validate了
嗯 这个有在用
好cool的插件!
搞上去试试! O(∩_∩)O哈哈~
不错的修改
真难明白插件作者为什么取消这么好的功能
Just A Blog的那个图片很好看
@小y
中文工具箱输出的貌似评论最多的文章,以前我也一直在使用。。
@joojen
WP-PostViews Plus没有用过,一直都在用原版的。
@A.shun
你没有把数据库搬过来吗?以前不是使用Wordpress的??
@ZH CEXO
貌似安装WP-PostViews没有这个问题啊。。
@bolo
我也不知道啊,这个函数不是原作者写的,估计他后来想用
get_least_viewed函数来作为一个补充吧。。@SunQ
一次偶人的机会把两张桌面合并就变成这个样子了,O(∩_∩)O哈哈~我也觉得很好看。。
@Alex
以前在yo2,只能导出xml
@A.shun
那没办法了。。我以前的文章还是在Blogger和Live Spaces倒过来的呢,当时还不会输出什么东西,全部手工操作。
wp我还得好好研究一个,现在用ZBLOG。
这个我装上又卸载掉了,好像很占资源
插件么!试试!!!!
@亦歌
Wordpress很容易使用的,但最好是一边用一边折腾。。
@先看看
占用资源方面到没有怎么发现,对这方面也没有什么研究。。
@菲萨塔
不是插件是什么??
这个有用……
这个功能不错,省得热门文章的排序老是一成不变。
欢迎回访哦