让 WordPress 侧边栏最新评论不显示评论者链接

这两天老是有小白,一些想通过不正当的 SEO 来获取自己 PR 的小白,看准了我的博客和网站的侧边栏最新评论用的是 Widget (就是 WordPress 默认的,至于为什么这么用,是因为可以用上缓存插件而已),就跑来留言,说的也没啥,无非是支持,顶之类的,然后,留下自己的垃圾站的网址就跑了,对于这种人渣人肉 Spam,我是最讨厌的。

WordPress 的文章和页面中,评论者的链接默认是 no follow 的,所以对自己的 PR 毫无用处,而 Widget 调用的最新评论,确实没有 no follow ,这样就让一些投机的人钻了空子,不停评论,除了直接  spam 以外,能否通过自己修改文件来达到目的呢?答案是肯定的。

用非记事本打开 wp-includes\widgets.php ( WordPress 2.8 以前版本,WordPress 2.8 的话是wp-includes\default-widgets.php)文件,搜索 get_comment_author_link() ,如果以前没修改过,应该只有一个,然后把 get_comment_author_link() 修改为 get_comment_author() ,然后刷新或者删除缓存,再看看首页,没有评论者的链接了吧,哎,对付人肉 Spam ,只能用这招,假如没人会可以为了 PR 而留言,我是很乐意把所有朋友的留言都直接放到首页,而且给你一个链接,呵呵。

话说,通过观察 wp-includes\widgets.php 文件,你会发现很多有趣的侧边栏东东,比如这个最新评论的重要部分代码是:

<?php
}

/**
* Display recent comments widget.
*
* @since 2.2.0
*
* @param array $args Widget arguments.
*/
function wp_widget_recent_comments($args) {
global $wpdb, $comments, $comment;
extract($args, EXTR_SKIP);
$options = get_option('widget_recent_comments');
$title = empty($options['title']) ? __('Recent Comments') : apply_filters('widget_title', $options['title']);
if ( !$number = (int) $options['number'] )
$number = 5;
else if ( $number < 1 )
$number = 1;
else if ( $number > 15 )
$number = 15;

if ( !$comments = wp_cache_get( 'recent_comments', 'widget' ) ) {
$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_approved = '1' ORDER BY comment_date_gmt DESC LIMIT $number");
wp_cache_add( 'recent_comments', $comments, 'widget' );
}
?>

<?php echo $before_widget; ?>
<?php echo $before_title . $title . $after_title; ?>
<ul id="recentcomments"><?php
if ( $comments ) : foreach ( (array) $comments as $comment) :
echo  '<li class="recentcomments">' . sprintf(__('%1$s on %2$s'), get_comment_author_link(), '<a href="' . clean_url( get_comment_link($comment->comment_ID) ) . '">' . get_the_title($comment->comment_post_ID) . '</a>') . '</li>';
endforeach; endif;?></ul>
<?php echo $after_widget; ?>

怎么样?不喜欢用 widget 的同学可以发挥自己的聪明才智,导入到主题的 siderbar.php 里,那就可以实现不依靠任何插件或者 widget 就能显示最新评论了。

不过我还是推荐使用 widget ,因为可以配合 WP Widget Cache 插件来缓存,嗯,适合小流量的博客。

WordPress 博大精深,值得我们每个人去学习

PS:正在考虑是否要去除自己的评论,但是,我每次都是通过首页来看最新的评论然后去回复一个,这样就懒得进后台了,再三考虑,还是不要去除的好。

再次PS:目前不会加入评论回复邮件功能,一方面是正在用的 vpssendmail 有点问题,貌似发送的邮件到达不了,所以我就没装 sendmail ,二是每天N多个邮件看着不爽(我为访客考虑嘛)


.De域名注册

相关信息

已有42条评论

  1. LAONB CHINA Internet Explorer Windows 发表于2009年06月8日16:31

    那我也来沙发,这个写的不错,不过我哪里都是些常来的朋友。

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @LAONB, 林子大了就会有各种各样的鸟出现 哈哈 :mrgreen:

    [回复]

    一天一歌 CHINA Internet Explorer Windows 回复:

    @Showfom,
    看来宁可错杀一千绝不放过一个是你的原则哦 :lol:
    P.S.:“网站 (设置头像)”
    人头是捆着邮箱的不是网站阿哈 :shock:

    [回复]

  2. 石老人 CHINA Internet Explorer Windows 发表于2009年06月8日17:18

    我用的是一个插件,可以自己调整一下,也没有链接了。呵呵。这个插件中文 WordPress 工具箱

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @石老人, 用插件的话,就得用全站缓存或者自己去弄 sidebar 的缓存了,因为我喜欢用 WP Widget Cache 插件,所以呵呵

    [回复]

  3. Panther CHINA Mozilla Firefox Windows 发表于2009年06月8日18:10

    MJJ :grin:

    [回复]

  4. Sivan CHINA Mozilla Firefox Windows 发表于2009年06月8日19:30

    :eek: 基本不用widget,太不灵活了。

    [回复]

  5. Sivan CHINA Mozilla Firefox Windows 发表于2009年06月8日19:33

    还有你给的那个代码,自己在里面加上rel="nofollow"就行了啊,换了那个变量连评论者链接都不显示了啊。

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @Sivan, 加了 nofollow 和 不显示 两个概念也……

    [回复]

    流星 AUSTRALIA Google Chrome Windows 回复:

    @Sivan, 加到哪里呢?加到link后面那个括号里面?

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @流星, 给你举个例子:

    <a href='http://LAONB.COM' rel='external nofollow' class='url'>LAONB</a>

    [回复]

    流星 AUSTRALIA Google Chrome Windows 回复:

    @Showfom, 不会是每一个都要手动去加吧?

    [回复]

    流星 AUSTRALIA Google Chrome Windows 回复:

    @流星, 才发现我有wp kit cn,怪不得没效果,原来我用的是kit cn生成的widget,不是系统的……丢人了…… :evil:

    [回复]

  6. kramon CHINA Mozilla Firefox Windows 发表于2009年06月8日19:51

    不错!

    [回复]

  7. wulinfo CHINA Mozilla Firefox Windows 发表于2009年06月8日21:08

    就因为来你这评论多了,结果PR变0看 :eek:

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @wulinfo, :eek: 传说中的人品问题?

    [回复]

  8. 卢松松 CHINA Internet Explorer Windows 发表于2009年06月8日23:28

    不显示连接可不太好o

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @卢松松, 评论里还是显示的,侧边栏不显示而已。

    [回复]

  9. leehow CHINA Mozilla Firefox Windows 发表于2009年06月9日08:09

    我真的是来看看你这边的...

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @leehow, 姐姐真好 :oops:

    [回复]

  10. seri CHINA Internet Explorer Windows 发表于2009年06月9日14:26

    :idea: 偶也是这样做的,杜绝一切人肉垃圾=。= :mrgreen:

    [回复]

  11. LOKE CHINA Safari Windows 发表于2009年06月9日17:33

    我的连侧栏都没有了~~ :lol:

    [回复]

  12. 月夜 CHINA Internet Explorer Windows 发表于2009年06月9日19:36

    我个人最近正在思虑着将评论关闭。因为很多时候评论没有什么意义。不知道你作何感想。

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @月夜, 刚写感想呢:
    发泄了一下下,其实博客最重要的还是朋友们的留言,对于访问量我是不太在乎了,否则只在乎访问量的话,一定会放些阿里妈妈、Google Adsense 的广告,在我眼里,博客只是一个交友的平台,一个展示自己,认识更多朋友的平台,所以,在我没想过用博客盈利的情况下,我是永远都不会去放广告、写软文的。

    呵呵,偶只在乎留言评论 呵呵。

    [回复]

  13. 生日礼物 DIY CHINA Internet Explorer Windows 发表于2009年06月10日06:37

    呵呵 很不错

    [回复]

  14. feicun CHINA Mozilla Firefox Windows 发表于2009年06月10日14:48

    要是我那里出现垃圾留言的人,就直接删除……管他的。话说我觉得ls就是垃圾留言

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @feicun, 我也这么觉得,反正留言的链接是 no follow 的,随他去了。主要是删除得进后台,我很懒的哎……平均两天进入一次后台,发文章都直接用wlw

    [回复]

  15. shamas CHINA Internet Explorer Windows 发表于2009年06月10日15:50

    我用的那个recentcomments也没有留言者链接,比较省事

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @shamas, (*^__^*) 嘻嘻…… 偶不喜欢用插件~~

    [回复]

  16. 辐射鱼 CHINA Mozilla Firefox Windows 发表于2009年06月10日17:10

    偶来你的博客就是来点击别人的博客的,谁叫你这里是wp博客大全呢

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @辐射鱼, 也是噢。 不是 WordPress 的博客不做链接的,基本也不留言

    [回复]

  17. bolo CHINA Internet Explorer Windows 发表于2009年06月10日17:57

    嗯,值得参考

    [回复]

  18. 一米 CHINA Google Chrome Windows 发表于2009年06月11日13:20

    写的不错,又学了点东西。嘿嘿。纯技术文章,要支持。

    [回复]

  19. Bronco CHINA Mozilla Firefox Windows 发表于2009年06月13日10:07

    发现一个问题,貌似大家现在都喜欢不用Widget而直接写Sidebar的代码啊~

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @Bronco, 除非是纯HTML代码,要是php代码的话,会额外增加查询次数,所以偶不推荐了现在 哈哈 反正用widget也能实现的功能,为啥非要自己去写代码……

    [回复]

  20. rj03hou CHINA Mozilla Firefox Windows 发表于2009年06月13日11:08

    我把wordpress升级了,没有找到你说的get_comment_author_link()

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @rj03hou, 换了名字,是 default-widgets.php

    [回复]

    rj03hou CHINA Mozilla Firefox Windows 回复:

    @Showfom,
    谢谢,我已经修改成功了。

    [回复]

  21. 可咔酷 CHINA Internet Explorer Windows 发表于2009年10月16日13:02

    学习了 已经用你的方法解决了同样的问题 谢谢

    [回复]

  22. 陆洲 CHINA Google Chrome Windows 发表于2010年06月9日10:44

    感觉还是不留自己的评论比较好,免得一下全显示自己的评论``
    按个人所需吧`

    [回复]

  23. 淘城记 Internet Explorer Windows 发表于2010年07月26日15:21

    不是有黑名单吗?把那些人拉进去就行了!

    [回复]

欢迎写下您的评论,其中 * 为必填项目

这里写下你想说的话

:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!:


Follow us on Twitter