WordPress: 某段时间内最热文章

这个功能算是老需求了,因为自己不怎么需要,所以也没写过。最近一个朋友需要此功能,而且不要网上搜到的直接方式,而是要写成函数。我记得收藏过一段类似的代码,是国外一个 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
or
oooo

“WordPress: 某段时间内最热文章”有100条评论

  1. 抢个沙发。

  2. 拿走啦.哈哈.介个好 :mrgreen:

    1. zwwooooo says:

      @自说Me话
      你评论后改了哦

  3. axiu says:

    我最热文章用的是浏览最多,直接在willin的my_visitors里加了个

    post_date > date_sub( NOW(), INTERVAL 2 MONTH )

    了事……

    1. zwwooooo says:

      @axiu
      的确浏览最多比较ok,只是要借助views。。。

  4. Bee君 says:

    像我这种懒人blogger~~还是每年最热文章好了~~

    1. zwwooooo says:

      @Bee君
      的确是啊,哈哈

  5. 孤风 says:

    留个脚印,回来好找

  6. cangzhang says:

    脚印留下,代码拿走

  7. 奚少 says:

    由于我经常不更新,所以我的文章评论选择的都是最近三个月的,哈哈~

    1. wmtimes says:

      @奚少
      谁敢和你比懒。 :mrgreen:

    2. zwwooooo says:

      @奚少
      一般博主都要设为1个月吧,除非天天更新的

  8. 收藏代码,备用啊。呵呵,大叔

  9. elaphent says:

    收藏备用哈

  10. Ooon says:

    很少有每天一更的啊 :arrow:

    1. zwwooooo says:

      @Ooon
      的确很少,除非是咨询类什么的博客

  11. Leyond says:

    呵呵,还是能折腾啊。支持

  12. 我哪里的水文倒是很热,暂不用这个,不然,推送出来的全是水文

    1. zwwooooo says:

      @yesureadmin
      需要才用,毕竟多了查询

  13. Don says:

    太好了,又是一技术文章!喜欢代码实现。

    1. zwwooooo says:

      @Don
      代码实现可以减少插件安装量,但不一定就代表比插件好。

  14. wmtimes says:

    把wp改成cms这个应该很有用的。 :razz:

    1. zwwooooo says:

      @wmtimes
      也要看需要了

  15. 这种方法最好用~~~直接扔到functions.php就好了

    1. zwwooooo says:

      @皇家元林
      还要调用啊,当然调用方便

  16. C瓜哥 says:

    还是做成插件好些,便于升级WP后,不用再改源码

    1. zwwooooo says:

      @C瓜哥
      本来就不需要改源码,除非你换主题

  17. 园子 says:

    这个功能不错哦,我也去试下。

    1. zwwooooo says:

      @园子
      慢慢折腾

  18. MK says:

    这功能是必需的,否则什么陈年文章都调出来,傻不傻。。。给力。。。

    1. zwwooooo says:

      @MK
      的确是啊

  19. Demon says:

    在新皮上得試一下呀。

    1. zwwooooo says:

      @Demon
      今天修改了一下,原来的有点问题

  20. Microhu says:

    这个能和归档结合在一起,设一个更华丽的归档

    1. zwwooooo says:

      @Microhu
      可以吧,自己折腾

发表评论

昵称 *

网址

B em del U Link Code Quote