×

WordPress: 某段时间内最热文章

优畅主题 Wordpress技术 2013-06-19 16:22 3,334 0 条评论

这个功能算是老需求了,因为自己不怎么需要,所以也没写过。最近一个朋友需要此功能,而且不要网上搜到的直接方式,而是要写成函数。我记得收藏过一段类似的代码,是国外一个 WPer 写的,至于是不是原创就不知道了,但代码里面我是注明是基于他那篇文章里面的代码修改的。

“某段时间内最热文章”,就是指自定义一段时间内的文章中评论最多的文章,以前很多人用的是全部文章的最热文章功能,用处不大。

某段时间内的最热文章也很多人写过吧,具体就记不清了,我这里也贴一下自己修改的。

1. 把下面的函数代码扔到主题的 functions.php 文件里面,具体看注释

/* 某段时间内最热文章
 * Reference: http://www.wprecipes.com/rarst-asked-how-to-get-most-commented-posts-of-the-week
 * Edit: uctheme
 */
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='<li>None data.</li>';
}else{
foreach($result as $topten){
$postid=$topten->ID;
$title=$topten->post_title;
$commentcount=$topten->comment_count;
if($commentcount!=0){
$output.='<li><a href="'.get_permalink($postid).'" title="'.$title.'">'.$title.'</a> ('.$commentcount.')</li>';
}
}
}
echo$output;
}

2. 调用方法,例如放在侧边栏:

<h3>近期最热文章</h3>
<ul>
<?phpif(function_exists('most_comm_posts')) most_comm_posts(30, 10);?>
</ul>

PS:函数参数1是按天计算的,30就是30天;参数2是文章显示数量,10就是显示10篇,自己根据所需设置。

完。


如果本文对你有帮助,你可以扫描右边的二维码打赏,谢谢支持
联系优畅:uctheme#qq.com (#改为@)
微信订阅号:优畅主题(uctheme)
官网淘宝店:http://uctheme.taobao.com
版权声明:版权归 优畅主题 所有,转载请注明出处!
转载请保留链接: https://www.uctheme.com/technical/302.html
谢谢支付宝打赏
谢谢微信打赏

品牌创立:2012-11-18优畅主题

优畅主题成立于2012年11月18日,专业Wordpress导购主题开发商,拥有多年Wordpress主题设计经验,专门为淘宝客和导购客站长量身打造高端赚钱模板,我们注重细节,有着严谨的开发态度,一切从客户角度出发,如果你也喜欢 WordPress导购主题,欢迎和我们一起交流!


8 + 8 = ?

目前还没有评。

切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册