制作“热门文章”小工具的思路与文章《制作WordPress侧边栏“随机文章”小工具并集成在主题中的方法》提供的一致,如果你没看过这篇文章,不妨看看先。“热门文章”的“热门”指的是一段时间内评论数多的文章,用本方法实现的小工具可以在后台随意开启,想用就用,不想用也不用删除代码。现在直接提供教程:
一、“热门文章”小工具相关代码
新建一个php文件,命名为widget_hotposts.php,输入以下内容并以utf-8编码格式保存。
<ul class="widget-container"><li class="widget"> <h3 class="widgettitle">热门文章</h3> <ul> <?php if(function_exists('most_comm_posts')) most_comm_posts(60,5); ?> </ul> </li> </ul> |
注意:
1、上面代码的most_comm_posts(60,5);,5表示显示5篇随机文章,60表示调用60天内热门文章,你可以修改为你需要的文章数;
2、上面代码的相关css选择器(class="widget-container"、class="widget")需要改为与你的主题相适合的选择器名。
二、定义相关函数并向WordPress后台调用“热门文章”小工具
将上面的widget_hotposts.php文件放在你的主题路径下,如我的是放在主题的/lib/widgets/下,那么就在主题的fountions.php的最后一个 ?>前添加如下代码:
//边栏热门文章 Devework.com function most_comm_posts($days=30, $nums=5) { global $wpdb; $today = date("Y-m-d H:i:s"); $daysago = date( "Y-m-d H:i:s", strtotime($today) - ($days * 24 * 60 * 60) ); $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 target="_blank" href="'.get_permalink($postid).'" title="'.$title.'">'.$title.'</a></li>'; } } } echo $output; } //后台调用 Devework.com class widget_most_comm extends WP_Widget{ function widget_most_comm(){ $widget_options = array('classname'=>'set_contact','description'=>'本站主题目前自带的热门文章小工具'); $this->WP_Widget(false,'Devework.com热门文章',$widget_options); } function widget($instance){ include(TEMPLATEPATH .'/lib/widgets/widget_hotposts.php'); }} add_action('widgets_init',create_function('', 'return register_widget("widget_most_comm");')); |
现在打开你的后台的小工具选项就会有一个“Devework.com热门文章”小工具,直接拖动使用即可。
试了试,会报错哦,希望可以改一下
:???: 我不能用啊
这段代码会将page页面的留言也统计在内,比如留言板。。