WordPress 去掉评论中链接的方法

俗话说道高一尺,魔高一丈,既然做了一名 WordPress 独立博客的博主,就要有与垃圾评论斗争到底的信心与决心,但是作为一名打不走,骂不离,死皮赖脸的 Spammer,就要做好与各位博主们周旋的准备。我见的最多的垃圾评论就是在留言中 Ctrl+C、Ctrl+V 千篇一律的话,什么“过来踩踩”、“博主加油”,然后撒下一坨链接就闪人了。这是最没有职业素养的 Spammer(……此处省略三千字对垃圾评论的无限鄙视……)

要防止垃圾评论对 WordPress 本身权重的影响,Wordpress 本身的 nofollow 标签肯定是不够的,所以我还用了 WordPress 评论链接重定向跳转,如果你觉得这还不够彻底的话,可以用这个方法,索性把 WordPress 评论中包括链接的 a 标签过滤掉,只剩下一个无法点击的链接文本。

方法和过滤并替换 WordPress 留言指定字符是差不多的,也是用的钩子,外加一个 PHP 的正则表达式,把链接过滤出来,把以下代码复制到 WordPress 主题文件夹的 functions.php 中就可以了:

add_filter('comment_text', 'no_url_text', 10);
function no_url_text($text = ''){
    $text = preg_replace("/<a[^>]*href=[^>]*>|<\/[^a]*a[^>]*>/i","",$text);
    echo $text;
}

童鞋们不用在我这里测试了,因为我没有用上,这里是纯解说,无实践。

另外,如果你觉得这还不够彻底,那还有一个更绝的!就是把所有评论者的链接都去掉,不过这样的话在干掉 Spammer 的同时也会干掉所有无辜的博友,请慎用啊。去掉 WordPress 评论者的链接,看到很多参考方法都说改 WordPress 的源文件,其实我不建议那么干,一方面这个方法太原始,咱要玩高级的;另一方面,以后 WordPress 升级就会覆盖掉,所以我们还是在主题文件的 functions.php 中添加钩子比较好:

add_filter('get_comment_author_link', 'no_url_author', 20);
function no_url_author($text = ''){
    $text = preg_replace("/<a[^>]*href=[^>]*>|<\/[^a]*a[^>]*>/i","",$text);
    echo $text;
}

这下世界就清静了,不过做的太狠,你的博客也会很清静哟,三思而行吧。

  1. 我和你好像完全相反呀~我是把我评论里面的所有链接都做成真实的。这样每条链接都有效~因为我去除了nofollow标签,并且不加跳转~但是我基本不看审核,一进去的,原则上就删除了。

  2. 我的comments文件比较简单,直接修改代码,去掉后面的-link就去掉了链接... :mrgreen:

    估计没有多少人评论了,不过我希望的也是有质量的回复,呵呵。。

  3. Good idea!但是部分有用的链接还要保留的,只能早点发现早点删除了,但是像你的这么多留言就难说了