刚开始做这个主题的时候,用的是Wordpress自带的函数 get_posts 来获取热门文章的,然而这个函数按评论排序是所有文章中评论最多的文章,这样就有可能导致“热点文章”的列表基本不会更新,这显然不是我们想要的。
今天想给自己的9IPHP主题添加这个功能的时候,百度找到一种方法,是获取最近某段时间内评论最多的文章的。方法是zwwooooo的《WordPress: 某段时间内最热文章》,下面上代码:
/* 某段时间内最热文章*/
function most_comm_posts($days=7, $nums=10) { //$days参数限制时间值,单位为‘天’,默认是7天;$nums是要显示文章数量
global $wpdb;
$today = date("Y-m-d H:i:s"); //获取今天日期时间
$daysago = date( "Y-m-d H:i:s", strtotime($today) - ($days * 24 * 60 * 60) ); //Today - $days
$result = $wpdb->get_results("SELECT comment_count, ID, post_title, post_date FROM $wpdb->posts WHERE post_date BETWEEN '$daysago' AND '$today' ORDER BY comment_count DESC LIMIT 0 , $nums");
$output = '';
if(empty($result)) {
$output = '
None data.';} else {
foreach ($result as $topten) {
$postid = $topten->ID;
$title = $topten->post_title;
$commentcount = $topten->comment_count;
if ($commentcount != 0) {
$output .= '
'.$title.' ('.$commentcount.')';}
}
}
echo $output;
}
调用方法:在sidebar.php中添加如下代码
近期最热文章
样式表什么的就自己写吧,效果请查看本站侧边栏“热点文章”。