垃圾评论一直都是广大 WordPress 博主非常头疼的问题,虽然 Akismet 插件可以有效的帮助博主们低于垃圾评论的侵蚀,但是长久的使用 Akismet 插件会在数据库生成许多无用的表严重影响网站的运行效率。而且申请 Akismet 插件的页面也时不时的被墙,新博客想用 Akismet 插件还挺难。今天小编就整理了一些防止 WordPress 垃圾评论的方法。

1 、删除评论链接框字段 (URL) 。发垃圾评论无非就是为了那么点外链,如果去除掉评论中的链接框的确可以阻挡住一些人为发送的垃圾评论。

function remove_comment_fields($fields) {
    unset($fields['url']);
    return $fields;
}
add_filter('comment_form_default_fields','remove_comment_fields');

将以上代码加入到 functions.php 文件即可将评论中的链接填写框给去除掉,不过有些童鞋不想除去链接框也可以参考我这篇文章 《WordPress 小技巧:评论链接转为内链转跳的方法》 。

2 、为评论内容中的外链添加 Nofollow 属性。

add_filter('comment_text', 'auto_nofollow');

function auto_nofollow($content) {

    return preg_replace_callback('/<a>]+/', 'auto_nofollow_callback', $content);
}

function auto_nofollow_callback($matches) {
    $link = $matches[0];
    $site_link = get_bloginfo('url');

    if (strpos($link, 'rel') === false) {
        $link = preg_replace("%(href=S(?!$site_link))%i", 'rel="nofollow" $1', $link);
    } elseif (preg_match("%href=S(?!$site_link)%i", $link)) {
        $link = preg_replace('/rel=S(?!nofollow)S*/i', 'rel="nofollow"', $link);
    }
    return $link;
}

将以上代码加入到 functions.php 文件之后评论内容中的所有外链都会加上 Nofollow 属性,不过你想移除掉 WordPress 评论内容中的描文本功能可以直接使用以下代码:

remove_filter('comment_text', 'make_clickable', 9);