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

cera cera

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

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

实现代码
将以下代码复制到你的主题目录下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 = ‘

  • 尴尬了,没有热门文章!

‘;
} else {
$i=0;
foreach ($result as $topten) {
$i++;
$postid = $topten->ID;
$title = $topten->post_title;
$commentcount = $topten->comment_count;
if ($commentcount != 0) {
$output .= ‘

‘;
}
}
}
return $output;
}
然后在你需要调用的主题模板文件中使用


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

上面的方法最后输出的html内容即

  • 标签内的数据,可以根据自己需求书写,这里只是举个例子。

cera cloudiplc tengxunyun

相关推荐

mjjping.com cera cera cloudiplc