• 注册
  • 个人说明:TA有点懒了,什么都没有写。
    关注 1 粉丝 0 喜欢 0 内容 256
    河南省·郑州市
    聊天 送礼

    新版界面开发进度

    14%
    其实就是啥也没写,只有想法,哈哈
    • 回帖总排行
    • 采纳总排行

    分享精彩给好友

    全部文章 关注:0 内容:1074

    WordPress查询指定时间范围内最热门、评论最多文章【转】

  • 查看作者
  • 打赏作者
  • 拉黑名单
    • WordPress查询指定时间范围内最热门、评论最多文章仅仅靠WordPress提供的函数是不行的,我们需要按照自己的需求条件执行数据库查询才能获得对应数据,比如本站首页的热门讨论模块,就是采用了数据库查询的方式取得的文章数据。

      这两天趁放假,将博客的主题功能优化了下,新增了一些功能,显示效果做了一些细节上的调节。大家可能发现了,我在首页新增了一个热门讨论模块。这个模块里显示的是一个月时间内的评论次数最多的文章,总共显示5篇,并按照评论数量从高到底排列。下面来看看具体怎么实现的,部分代码来自网友。

      WordPress查询指定时间范围内最热门、评论最多文章

      实现代码

      将以下代码复制到你的主题目录下functions.php文件中。

      /* 某段时间内评论最多最热文章*/
      function most_comm_posts($days=7, $nums=5) { //$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>尴尬了,没有热门文章!</li>';
      	} else {
      		$i=0;
      		foreach ($result as $topten) {
      			$i++;
      			$postid = $topten->ID;
      			$title = $topten->post_title;
      			$commentcount = $topten->comment_count;
      			if ($commentcount != 0) {
      				$output .= '<li><a>'.$title.'</a> ('.$commentcount.')</li>';
      			}
      		}
      	}
      	return $output;
      }

      然后在你需要调用的主题模板文件中使用

      <?php echo most_comm_posts(7,5);?>

      核心部分在于那一串数据库查询,按照限制条件从posts表中取得我们需要的数据,再从数据中取出comment_count, ID, post_title, post_date字段内容,如果你需要对应文章的链接地址,可以使用get_permalink($postid)函数获取,返回结果中的ID字段就是文章id。

      上面的方法最后输出的html内容即<li>标签内的数据,可以根据自己需求书写,这里只是举个例子。

      你需要登录,才能进行发帖操作