制作和海天博客一样的排行榜
虽然开博以来,海天的博客才出现了两位风云人物,但是海天的排行榜还是在每个月更新着,就算哪一个月忘了,经过随缘同学的提醒也会立即补上的。看到有朋友需要海天博客的排行榜调用代码,正好今天没东西写,嘿嘿就写下吧。
其实这个代码不是海天原创,因为网上的wordpress类似的代码很多,海天也只是放在一个页面里,就成了海天博客的排行榜了。
其实这段生成代码,是参照的万戈同学的代码。代码只调用当月的排行榜,然后海天再将上个月的排行榜截图下来,发表上去就OK了。
排行榜的调用代码,只需要将下列代码放入functions.php文件中
$identity="comment_author";
$passwordpost = " AND post_password=''";
$userexclude = " AND comment_author != '海天无影'"; //这个是去掉名为海天无影的用户头像
$approved = " AND comment_approved='1'";
$shownumber = 24;
$counts = $wpdb->get_results("SELECT COUNT(" . $identity . ") AS cnt, comment_author, comment_author_url,comment_author_email FROM (SELECT * FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->posts.ID=$wpdb->comments.comment_post_ID) WHERE MONTH(comment_date)=MONTH(now()) and YEAR(comment_date)=YEAR(now())" .
$userexclude . $passwordpost . $approved . ") AS tempcmt GROUP BY " . $identity . " ORDER BY cnt DESC LIMIT " . $shownumber);//real number of comments
function no_admin_number($no='', $one='', $twomore='') {
global $wpdb, $tablecomments, $post;
$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_post_ID = $post->ID AND comment_type = '' AND comment_approved = '1' AND comment_author != '海天无影'");
$cnt = count($comments);
if (!$cnt)
echo $no;
elseif ($cnt == 1)
echo $one;
else
echo str_replace("%", $cnt, $twomore);
}
如果某个月你忘记截取图片了,只需要将其中的红色代码改为那个月份的数字,排行榜生成的就是那个月的排行了。
下面是制作排行榜页面了,新建文件listpage.php然后将下列代码复制进去,上传到根目录。
<?php
/*
Template Name: List Page Template PAGE
*/
?>
<?php get_header(); ?>
<div class="w970">
<div id="main">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
<p>排行的描述,你自己写吧,呵呵~</p>
<br />
<div class="listwall">
<ul class="ffox_most_active">
<?php if ( $counts ) : foreach ($counts as $count) :
echo '<li>' . '<div class="ffox_most_active_img"><a href="'. $count->comment_author_url . '" target="_blank" title="' . $count->comment_author . ' ('. $count->cnt . '层楼)"><img src="/wp-content/plugins/mini-gravatar-cache/iava/'.md5(strtolower($count->comment_author_email)).'.jpg" alt="' . $count->comment_author . ' ('. $count->cnt . '层楼)" width="48px" height="48px"/></a><p>' . $count->comment_author . '</p></div></li>';
endforeach; endif;
?>
</ul>
</div>
<div class="content">
<?php the_content(); ?>
</div>
</div>
<div id="myads" class="sy-ad"></div>
<?php comments_template(); ?>
<?php endwhile; else: ?>
<div class="post">哦!您要找的日志可能已经更换地址,重新搜索一下吧,或者点击<a title="Home" class="active" href="<?php echo get_option('home'); ?>/">这里</a>回首页看看吧</div>
<?php endif; ?>
</div>
<?php get_sidebar(); ?>
</div>
<?php get_footer(); ?>
然后去后台新建一个页面,模板选择你新建的文件listpage.php。这样以后发上个月排行榜的图的时候,只要直接在后台编辑页面,就可以了。
对了还有下面的css代码,复制到你的主题的style.css文件中,根据自己主题的需要更改细节:
.listwall {
width:620px;}
.ffox_most_active li {
float:left;
height:60px;
list-style:none outside none;
margin-left:5px;
overflow:hidden;
padding-bottom:20px;
width:70px;
}
.ffox_most_active_img{
height:48px;
text-align:center;
width:65px;
}
.ffox_most_active p {
text-align:center;
font-size:13px;
width:70px;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}
日志信息 »
相关日志 »
-
速度啊 不用插件吗
-
杯具了 代码放入functions.php不行 出现错误啊
-
你真勤奋,每个月都做我肯定会忘记
-
这个真不错,晚上我就测试一下,看看效果啦。谢谢海天。
-
海天的貌似要比我繁琐点
我不用动function.php嘛。。。 -
这个代码我们zb也有,哈哈!
-
是哪个排行榜啊?
-
我没看到有排行
-
恩 zb好像也有哦!
-
看了下效果还不错哦。改天也折腾个玩玩。
-
排行榜,互动性会强点。
-
牛逼了 呵呵
-
电脑高手~~果然不同凡响
-
这个很有带动力哟,不错!
-
这个真得顶
-
有阵子没折腾wordpress了,这个互动排行蛮好的,不过我那博客人气也不高,懒得去弄了。
-
11月我还没有上,再加把劲,呵呵!
-
我的水墙时间限制是一年的,然后只显示前面的70名左右哈。。
嘿嘿。。
-
嘿嘿。再来踩海天一下哈。
也提高下知名度哈。 -
用代码实现 换主题的时候就的忙活一阵子了
-
我一直觉得你这博客美化的越来越好看了,而且也有利于SEO
-
代码俺是看不懂了
-
我最近想弄个水墙,哈哈
-
学习中,进步中 -
直接放代码就可以了?不需要插件么
-
我来看博主文章了,感谢分享哦!!1!
-
我没有这个头像缓存插件mini-gravatar-cache所以不行的
-
博主,牛人
-
不需要插件么
-
头晕啊

34条评论▼点击进行评论