外贸独立站的底层设计密码WordPress 成品站SaaS建站
当前位置:首页>WordPress建站>基础教程>WordPress调用某段时间评论最多的文章

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

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

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篇,自己根据所需设置。具体的样式就要靠自己写css啦。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
欢迎关注WordPress大学公众号 WPDAXUE
基础教程

WordPress调用最近更新过的文章

2012-11-4 6:16:00

基础教程

WordPress添加友情链接页面(自动获取favicon.ico图标)

2012-11-6 6:04:00

10 条回复 A文章作者 M管理员
  1. 醉后的力量

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

  2. calen0077

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

  3. coolwp.net

    查询条件应该再严格一点儿:
    $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);

    • coolwp.net

      否则可能会查询到其它文章类型的评论,或者私密文章的评论,或者有密码的文章的评论…

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

    • 那就要看看你设定的时间段内,那几篇文章的评论数的排名都有没有变化了

    • 倡萌

      我的意思是说 现实 两个字是不是打错了?

    • 是打错了

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

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索