NIUBI
wordpress教程

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

9个月前/ 60/ / WP爱好者/ 已收录/
导语: WordPress 查询指定时间范围内最热门、评论最多文章仅仅靠 WordPress 提供的函数是不行的,我们需要按照自己的需求条件执行数据库查询才能获得对应数据,比如本站首页的热门讨论模块,就是采用了数据库查询的方式取得的文章数据。

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

这两天趁放假,将 WP 爱好者博客的主题功能优化了下,新增了一些功能,显示效果做了一些细节上的调节。大家可能发现了,我在首页新增了一个热门讨论模块。这个模块里显示的是一个月时间内的评论次数最多的文章,总共显示 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>标签内的数据,可以根据自己需求书写,这里只是举个例子。

点点赞赏,手留余香

还没有人赞赏,快来当第一个赞赏的人吧!
admin给Admin打赏
×
予人玫瑰,手有余香
  • 2
  • 5
  • 10
  • 20
  • 50
2
支付
收藏 0 海报

版权归属:本文为原创文章,版权归 所有

本文链接:( 欢迎分享本文,转载请保留出处 )

免责声明:如发现本站有涉嫌抄袭侵权/违法违规的内容,请邮件/留言反馈,一经查实本站将立刻删除!

<< 上一篇

2020-05-29

下一篇 >>

2020-05-29

全部评论( 0 条 )
扫一扫二维码分享