wordpress读者墙排除无gravatar头像
如题,以前就想折腾这个效果,问了N个wordpress控,回答都一致,无法判断。可能大家都不在乎这个,自从认识了小蝴蝶,觉得她是技术达人,那天一问,先是觉得不可行,接着说用css可以实现,但是css效果肯定不理想,于是昨天,小蝴蝶用代码实现了这个效果,小蝴蝶威武!
长话短说,主要是因为没有头像的读者上了排行版,那道墙看上去有点不尽人意,因为大部分没有头像而长期来评论的人都是来做广告的,本站最恨就是机器刷广告还带链接的,而如果是人工评论我不屏蔽,但不带链接就ok,因为有的人虽然是来做广告的,但是评论却都是一针见血,这样的宣传者欢迎吐槽,但是我的排行版考虑到美观,所以才会出此之策。
其实当初为了维护读者墙页面,我的读者墙是用代码输出全部留言用户,然后再复制到离线编辑器,删掉没有头像的,然后直接发布页面,这样做的优点就是不用查询数据库,防止一些刷评论的进入这个页面(那时把这个页面当做友情链接使用),还可以把没有头像的给排除掉,缺点就是无法及时更新非刷评论的读者,排行版更新得手动再次编辑,太麻烦了,哈哈。
在请教的过程中,phoetry就弄过一个检查评论者头像,无头像不能评论的功能,主要折腾的还是判断有无gravatar头像,但那段代码很明显用在读者墙是行不通的,好了,废话不多说,下面分享小蝴蝶折腾出来的方法!
首先function里加如下代码:
function no_gravatar($email) {
$emailaddress = md5($email);//xiaohudie.net
$url = 'http://www.gravatar.com/avatar/' . $emailaddress . '?d=404';//从gravatar处调用默认头像
$headers = @get_headers($url);
if (!preg_match("|200|", $headers[0])) {//进行匹配
$is_no_avatar = FALSE;//如果这个邮件地址没有生成默认头像,则判断为有头像用户
} else {
$is_no_avatar = TRUE;//反之则是没头像了
}
return $is_no_avatar;
}
然后到你的读者墙代码页,下面是我的读者墙代码:
<?php
$query="SELECT COUNT(comment_ID) 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 comment_date > date_sub( NOW(), INTERVAL 124 MONTH ) AND user_id='0' AND comment_author_email != 'admin@example.com' AND post_password='' AND comment_approved='1' AND comment_type='') AS tempcmt GROUP BY comment_author_email ORDER BY cnt DESC LIMIT 20";
$wall = $wpdb->get_results($query); $maxNum = $wall[0]->cnt;
$i =1;
foreach ($wall as $comment)
if (no_gravatar($comment->comment_author_email)) {
{
$width = round(40 / ($maxNum / $comment->cnt),2);
if( $comment->comment_author_url )
$url = $comment->comment_author_url;
else $url="#";
$avatar = get_avatar( $comment->comment_author_email, $size = '36', $default = get_bloginfo('wpurl').'/avatar/default.jpg' );
$tmp = '<li><a rel="nofollow" target=_blank class="no-ce" href="'.$comment->comment_author_url.'" title="'.$comment->comment_author.':'.$comment->cnt.'条评论">'.$avatar.'</a></li>';
$output2 .= $tmp;
$i++;
if($i>10)//10改成你想要的数字
break;
}
}
$output3 = "<ul class=\"readers-list\">".$output2."</ul>";
echo $output3 ;
?>
效果如下:
参考你自己的读者墙代码,把红色那几行代码粘贴到你的代码相应位置,OK,那些没头像的读者瞬间在排行版里消失了,如果不懂,可以去小蝴蝶那里看原文,并提出问题。
下一篇:在阿根廷用手机打电话延迟问题
怎么可能不坐 什么都顾不上啦 赶紧飞过来~
正好,躺着睡吧,哈哈。。晚安!
晚安~午安~
好像这里漏掉了那个重要的function?
吐血~~·还是原作者厉害!哈哈。
发得太急了,哈哈。
没有没有,只是乍一看字少了点,哈哈
哈哈 不着急 现在不是高峰期
是不是突然觉得我实现更简单,哈哈。。。
是的 ! 所以睁大眼睛又看了几遍 哈哈哈
你们两个改切磋技术了么。
WP博客有很多是讨论关于WP折腾的。能赚钱的博客多是教你如何用博客赚钱的博客。
这想说什么。。
坛子你也折腾不少吧,只是没写出来。对么
呵呵,一针见血。
我是想说,可以换个关注点嘛。因为这些都被人写烂了。虽然就这个技巧,可能在其它地方并未见。
当然,写什么是每一位博主的自由,读者只能选择看与不看。~
@土木坛子 这个很强的说,留个印子在这里。头像都可以屏蔽,太厉害了。
主题方面,小折腾是有的,因为我追求过于简洁。
明白你的意思了,呵呵。说实话,我的博客曾经有想过让它赚钱,不过我明白不会赚多少,所以就没再折腾。另外我博客话题挺多,只是最近正好对这方面话题兴趣多点,呵呵。
随意点,开心就好,呵呵。
@郑永 嗯,随意点,开心就好。
空白头像确实不好看 完美主义者啊
很多因为技术的限制,没能折腾出来,呵呵 :)
刚看前几条评论 本来说我就不凑热闹了 看俩人聊的多好 不过看见下边还有两个哥们呢 我就来凑凑热闹吧
呵呵,能说!
你举例的几个头像里面,我认识6个
不得不说虽然你博客经常改,但还改得挺好的。没有越改越差。
这句话经典,很多时候为了新鲜感,改了主题,后来发现其实是多余的,有时候博客的确会越改越差,我个人感觉每次修改都好像长进点,不只是改了有新鲜感,的确是觉得这么改会比原来好点。
没有申请Gravatar头像的邮件大部分都是垃圾评论啊
是滴!
早有这个想法,在你这里写出来了
哈哈,要有人配合,呵呵。
我的头像倒还上榜了啊~经常折腾主题有时候会适得其反
呵呵,不推荐经常修改关键地方。
真不错,小蝴蝶好人啊
这个可以有。我懒得折腾,虽然知道点,因为我的头像缓存就有判断:如果此人不是G用户 》统一调用一个default头像——和willin版本的生成对应的默认头像不同
@zwwooooo 那可以不调用默认头像吗?直接忽略。。
因为有的人虽然是来做广告的,
小蝴蝶真是太厉害了!!技术强人。
试试看咯