无插件为WordPress侧边栏添加“热门文章”小工具并集成在主题中的方法

我们经常看到一些人的博客侧边栏都有热门文章。其实就是一个小工具,而有的主题自带有热门文章小工具,有的却没有,比如说小编所使用的主题就不带热门文章小工具,那我们要实现此功能就要制作“热门文章”小工具,今天就谈谈思路和方法。

制作WordPress侧边栏“热门文章”小工具并集成在主题中的方法

所谓“热门文章”的“热门”普遍指的是一段时间内评论数多的文章,用本方法实现的小工具可以在后台随意开启,想用就用,不想用也不用删除代码。现在直接提供教程

一、“热门文章”小工具相关代码

新建一个php文件,命名为widget_hotposts.php,输入以下内容并以utf-8编码格式保存。

<ul class="widget">
<h2 class="widget-title">热门文章</h2>
<ul>
<?php if(function_exists('most_comm_posts')) most_comm_posts(360,6); ?>
</ul>
</ul>

PS: 1、上面代码的most_comm_posts(360,6);,6表示显示6篇随机文章,360表示调用360天内热门文章,你可以修改为你需要的文章数;

2、上面代码的相关css选择器(class="widget"class="widget-title")需要改为与你的主题相适合的选择器名。

二、定义相关函数并向WordPress后台调用“热门文章”小工具

将上面的widget_hotposts.php文件放在你的主题路径下,如我的是放在主题的themes/lie文件夹下,那么就在主题的fountions.php的最后一个 ?>前添加如下代码:

/* 热门文章 */
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 href="'.get_permalink($postid).'" title="'.$title.'">'.$title.'</a></li>';
}
}
}
echo $output;
}
/* 热门文章 */
class widget_most_comm extends WP_Widget{
function widget_most_comm(){
$widget_options = array('classname'=>'set_contact','description'=>'本站主题目前自带的热门文章小工具');
$this->WP_Widget(false,'热门文章',$widget_options);
}
function widget($instance){
include(TEMPLATEPATH .'/widget_hotposts.php');
}}
add_action('widgets_init',create_function('', 'return register_widget("widget_most_comm");'));

现在打开你的后台的小工具选项就会有一个“热门文章”小工具,直接拖动使用即可。

PS:注意修改标红代码位置相关路径。

wordpress网站管理员登录密码忘记怎么办

上一篇

免插件实现WordPress文章增加阅读目录的方法

下一篇

99%的人还看了

发表评论

插入图片

欢迎登陆本站

 | 注册

在线工具

VIP视频解析
注册

登录

忘记密码 ?