WordPress查询指定时间范围内最热门、评论最多文章
WordPress查询指定时间范围内最热门、评论最多文章仅仅靠WordPress提供的函数是不行的,我们需要按…
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 = '<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>标签内的数据,可以根据自己需求书写,这里只是举个例子。
类别:WordPress教程、
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
还没有任何评论,赶紧来占个楼吧!