这个功能算是老需求了,因为自己不怎么需要,所以也没写过。最近一个朋友需要此功能,而且不要网上搜到的直接方式,而是要写成函数。我记得收藏过一段类似的代码,是国外一个 WPer 写的,至于是不是原创就不知道了,但代码里面我是注明是基于他那篇文章里面的代码修改的。
“某段时间内最热文章”,就是指自定义一段时间内的文章中评论最多的文章,以前很多人用的是全部文章的最热文章功能,用处不大。
某段时间内的最热文章也很多人写过吧,具体就记不清了,我这里也贴一下自己修改的。
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篇,自己根据所需设置。
完。
zww
赏
oooo
or
- 本文标题:WordPress: 某段时间内最热文章
- 本文链接:https://zww.me/archives/25453
- 发布时间:2011年05月14日 15:15
- 版权声明:除非注明,文章均为 zwwooooo 原创,转载请以链接形式标明本文地址!
某段时间的热文 比 总的热文 有用多了 后者没啥大用处
@邓肯
对啊,后者的确木有用处
排除页面的吗?有些版本是将页面也算在内的。
@liveme
规定一段时间的不需要排除页面,因为页面通常很少增加,所以被时间淘汰很快
这个比全站的热门文章实用
@ZhangJun
对啊
某段时间的比较有用,收藏~
@A.shun
代码更新了,原来的有问题。
以前也见过类似功能的代码,不过是从一个国内博客看到的,回头把那个代码找到了看看。
@闲云野鹤
这类都类似,wp木有内置函数只好用sql了
@zwwooooo
这句经典,木有内置函数...弄得我写主题都是自己写函数
@Cheney
sql不熟,简单应用
还是我们的WP功能够强大啊
@Louis Han
这个当然。
哈哈,这个好,已用上
@smilebull
我也加了,霍霍
[...] 感谢Z大,点击 原文链接 [...]
我以前也修改过,这个文章很有用的啊。
是否应该加上post_status='publish'?
博主呀,可否弄个本周点击数的热门文章呢
@观影楼阁
本周?你设为7天就行了。
对了,想请问ZWW,我的博客现在就是评论最多的文章一直不更新,不知道是怎么回事?能否给解答下?
先谢谢了。
@电商圈商城
你这样问我怎么回答你呢?我又不知道你用的神马代码。
回复代码好像显示不全,
@电商圈商城
代码要用code标签括住。也不需要贴代码,请直接用我文章的代码。
[...] 是这么一段代码,@zwwooooo那里也有,不过是用来- – ->某段时间内的最热门文章,我高兴万分来用,结果出了很多问题。 [...]
这个功能不错哦!很喜欢你的主题翻滚效果....可惜俺是个小白,不会弄- -.
@jamie
霍霍,学点jQuery就能做了
如是果时某段时间内的 浏览最多的文章的话, 代码怎么写?
@kmummy
要跟插件配合,因为wp木有浏览量记录功能
我想实现你的右边栏 评 新 热 签换成 周 月 总 热文怎么实现啊,能否给代码啊?
@浪漫在于中
那是jQuery的tab切换,我没写教程,网上一大堆,自己搜搜
问一下,怎么带上文章第一张图片缩略图在前面呢?
@SEV
写函数
如果标题过长,怎么截图的呢?谢谢,问题有点多
真的很不错,这样的效果呢?获取第一张图片,以及标题截断,下面还有最后一个评论者的评论内容+ID
最右边就是评论数 谢谢
@SEV
标题截断?用php字符串截断函数把 get_the_title() 的截断就行了,具体查手册。