沃鹏科技
VPS云服务器视频教程

WordPress调用某段时间评论最多的文章

Loading
0
《LINUX就该这么学》运维人员必学的LINUX系统自学手册

很多主题都用到了wordpress的热门文章函数,但一般都是调用建站以来所有时间评论最多的文章,说实在的,这个没什么意思,可能一直都是显示那几篇文章,今天给大家推荐一段代码,是调用WordPress某段时间内评论最多的文章。方法来自zwwooooo大师的 WordPress: 某段时间内最热文章

1.之间将下面的代码放到主题的 functions.php 最后一个 ?> 的前面,注意看代码中的注释文字:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/* 某段时间内最热文章
 * 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.调用的时候,可以参考下面的样例:

1
2
3
4
<h3>近期最热文章</h3>
<ul>
   <?php if(function_exists('most_comm_posts')) most_comm_posts(30, 10); ?>
</ul>

PS:函数参数1是按天计算的,30就是30天;参数2是文章显示数量,10就是显示10篇,自己根据所需设置。具体的样式就要靠自己写css啦。

支付宝扫码打赏 微信打赏

如果本文对你有帮助,请打赏作者,鼓励我们继续写作!

阿里云优惠大全

关于 倡萌

一个疯狂的 WordPress 爱好者,喜欢折腾 WordPress 主题,分享 WordPress 资源。如果你也喜欢 WordPress,欢迎和我一起交流!

精彩推荐

WordPress 添加作品集(Portfolio)自定义文章类型

WordPress 查看网站的所有伪静态 Rewrite 规则

10 条评论

  1. 醉后的力量

    我要调用某个指定分类下面评论最多的文章列表怎么调用?????

  2. 我复制了 怎么不行?求大神指点

  3. 查询条件应该再严格一点儿:
    $sql="SELECT comment_count, ID, post_title, post_date FROM $wpdb->posts WHERE post_date BETWEEN '$daysago' AND '$today' AND post_type='post' AND post_status='publish' AND comment_status='open' ORDER BY comment_count DESC LIMIT 0 , $nums";
    $result = $wpdb->get_results($sql);

  4. 可能一直都是现实那几篇文章
    是什么意思

  5. 貌似我设定时间内没有评论也 不能输出> None data,请问怎么回事?.

发表评论