这个功能算是老需求了,因为自己不怎么需要,所以也没写过。最近一个朋友需要此功能,而且不要网上搜到的直接方式,而是要写成函数。我记得收藏过一段类似的代码,是国外一个 WPer 写的,至于是不是原创就不知道了,但代码里面我是注明是基于他那篇文章里面的代码修改的。
“某段时间内最热文章”,就是指自定义一段时间内的文章中评论最多的文章,以前很多人用的是全部文章的最热文章功能,用处不大。
某段时间内的最热文章也很多人写过吧,具体就记不清了,我这里也贴一下自己修改的。
1. 把下面的函数代码扔到主题的 functions.php 文件里面,具体看注释
/* 某段时间内最热文章 * Reference: http://www.wprecipes.com/rarst-asked-how-to-get-most-commented-posts-of-the-week * Edit: zwwooooo */ 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> <?php if(function_exists('most_comm_posts')) most_comm_posts(30, 10); ?> </ul>
PS:函数参数1是按天计算的,30就是30天;参数2是文章显示数量,10就是显示10篇,自己根据所需设置。
完。
zww
赏
oooo
or
- 本文标题:WordPress: 某段时间内最热文章
- 本文链接:https://zww.me/archives/25453
- 发布时间:2011年05月14日 15:15
- 版权声明:除非注明,文章均为 zwwooooo 原创,转载请以链接形式标明本文地址!