WordPress 限制文章评论的内容

发布于 2018-08-03 字数2317 浏览 845 评论 0

垃圾评论往往具有某些特征,比如做外贸的网站往往都是采用 WordPress 站点做的,想在 google 获得好的排名,垃圾评论是个不错的选择,但是只是短时间的,这些评论基本都是英文的,还有 WordPress 是自带一个黑名单的,可是如果含有这些内容,只是将评论标记为垃圾评论,不让他提交到数据库才是王道。

必须包含中文

// 必须输入中文
if(!preg_match("/[\x{4e00}-\x{9fa5}]+/u",$comment_content)){
    wp_die("请说中国话!");
}

是否在黑名单

// 是否在黑名单
if( wp_blacklist_check($comment_author,$comment_author_email,$comment_author_url, $comment_content, $comment_author_IP, $comment_agent )){
    wp_die("您已被禁止评论!");
}

必须登录才能评论

// 是否登录
if(!is_user_logged_in()){
  wp_die("您必须登录之后才能评论!");
}

过滤 HTML 标签

// 过滤HTML标签
$comment_content = strip_tags($comment_content);

综合以上 4 点

add_action('preprocess_comment','yundanran_preprocess_comment');
function yundanran_preprocess_comment($commentdata){
    $comment_post_ID = $commentdata["comment_post_ID"];
    $comment_content = $commentdata["comment_content"];
    $comment_author = $commentdata["comment_author"];
    $comment_author_email = $commentdata["comment_author_email"];
    $comment_author_url = $commentdata["comment_author_url"];
    $comment_author_IP = $commentdata["comment_author_IP"];
    $comment_agent = $commentdata["comment_agent"];
    // 验证合法
    $nonce = wp_create_nonce($comment_post_ID);
    if(!isset($_POST["comment_nonce"]) || $_POST["comment_nonce"] !== $nonce){
        wp_die("请勿恶意评论!");
    }
    // 必须输入中文
    if(!preg_match("/[\x{4e00}-\x{9fa5}]+/u",$comment_content)){
        wp_die("请说中国话!");
    }
    // 是否在黑名单
    if( wp_blacklist_check($comment_author,$comment_author_email,$comment_author_url, $comment_content, $comment_author_IP, $comment_agent )){
        wp_die("您已被禁止评论!");
    }
    // 是否登录
    if(!is_user_logged_in()){
        wp_die("您必须登录之后才能评论!");
    }
    // 过滤HTML标签
    $comment_content=strip_tags($comment_content);
    return $commentdata;
}

如果你对这篇文章有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助。

扫码二维码加入Web技术交流群

您暂时不能评论!

管理员开启了需要登录才能够评论,你可以免费注册一个本站的账号。

还没有评论!

目前还没有任何评论,快来抢沙发吧!