这个功能算是老需求了,因为自己不怎么需要,所以也没写过。最近一个朋友需要此功能,而且不要网上搜到的直接方式,而是要写成函数。我记得收藏过一段类似的代码,是国外一个 WPer 写的,至于是不是原创就不知道了,但代码里面我是注明是基于他那篇文章里面的代码修改的。
“某段时间内最热文章”,就是指自定义一段时间内的文章中评论最多的文章,以前很多人用的是全部文章的最热文章功能,用处不大。
某段时间内的最热文章也很多人写过吧,具体就记不清了,我这里也贴一下自己修改的。
1. 把下面的函数代码扔到主题的 functions.php 文件里面,具体看注释
/* 某段时间内最热文章 * Reference: http://www.wprecipes.com/rarst-asked-how-to-get-most-commented-posts-of-the-week * Edit: uctheme */ 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> <?phpif(function_exists('most_comm_posts')) most_comm_posts(30, 10);?> </ul>
PS:函数参数1是按天计算的,30就是30天;参数2是文章显示数量,10就是显示10篇,自己根据所需设置。
完。
拥有多年WordPress博客/企业建站开发经验,独树一帜的设计,提供最专业的网站设计方案;原创的主题标签语义化,增强网站优化效果。
增强用户体验、提高品牌形象给人留下深刻的印象,那就选择我们,我们的每一款主题都是独一无二的,都有自己的灵魂,每款主题都有各自的配色方案。
遵循现代网页设计的趋势,所有主题都提供完整的响应式布局,优化大桌面显示器以及对平板和智能手机的支持,从而提供一致性的用户体验。
长期及时地在线售后服务和免费升级更新,确保您的网站始终运行在最佳状态,24小时QQ在线的沟通方式免去您的后顾之忧,替您节省网站维护成本。
目前还没有评。