这个功能算是老需求了,因为自己不怎么需要,所以也没写过。最近一个朋友需要此功能,而且不要网上搜到的直接方式,而是要写成函数。我记得收藏过一段类似的代码,是国外一个 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 原创,转载请以链接形式标明本文地址!
ZWWWOOOOO能不能帮我定制一下呢!谢过额,我现在自学PHP还木办法搞定...
@SEV
定制要详细说明,然后定制是收费的,因为我不是闲着。
ZWWWOOOOO大哥再次谢谢额...
一般写代码多少额,您大概什么时候有空呢?
@SEV
先把你要的功能详细说一下发到我的邮箱(侧边栏about有)
@zwwooooo
哦,明天我写给你,你也先休息嘛,今天很晚了...
[...] 代码来源:ZWW.Me [...]
hey。。我想问。。怎么在一个新的page里面把这个Popular的展现出来啊?下面一个调用的coding,应该放在哪里啊?
@xuanxuan0505
copy 一个 page.php 然后改名(例如page-popular.php),然后把代码扔到 page-popular.php 合适的位置(如the_content()函数后面),再然后建立一个页面,名为popular即可。
@zwwooooo 嗯~那你知道,怎么把这种链接形式的转换成一个个的博客文章的summary的那种形式啊?就是,包括文章第一段,时间,标题,作者等等那种。。
@zhx
可以输出一定数量的文字作为摘录,配合php摘录函数对去掉html格式的post->content进行截取。
query_posts()只显示一年内应该怎么写呢?
@emric
看query_posts函数的参数,去WP Codex
@zwwooooo
看了好多次了,主要时间函数发现都是指定时间.
@emric
那就给一个一年的时间去吗,很简单,自己用计算器算吧。
您的文章是如此有趣和翔实。我得到了很多有用的和重要的信息。谢谢你这么多。
小白求助:边栏那里具体怎么调用啊。。。?代码怎么加进去?求求求
@小小小子
第二步不是写了么。。。
请问楼主,如果我想把分类目录搞一个24小时最热的帖子,
用你这个方法,其他都实现了,但是帖子所对应的分类还是无法显示,类似这样的 www。juyouqu。com/hot/day
@satiling
注意写对参数
@zwwooooo
请问正常参数是什么呢?我直接调用不行啊
如果要显示最热门文章的发表时间该如何做?我试了the_time函数,不行。
@自然志
the_time 是直接输出,这里面的代码你要用 get_the_time,而且最好加上参数,如:get_the_time('m-d-Y', $postid)
这标题如何让调用出来的标题显示指定的字数
@qing
用字符串截取函数,我这搜搜,写过。
过来学习下了!
这么久了,今天还是找到这里来,代码很亲切,还加了判断function是否有代码存在,这样做可以友好的显示完整主题遇到问题的时候,呵呵。
@郑永
一般自定义函数都要加,只是偶尔偷懒吧