欧卡2中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

需要三步,才能开始

只需两步,慢速开始

玩欧卡就用莱仕达V10方向盘欧卡2入门方向盘选莱仕达V9莱仕达折叠便携游戏方向盘支架欢迎地图Mod入驻
查看: 5649|回复: 0
收起左侧

Wordpress防英文垃圾评论方法

[复制链接]
丶纠结灬 发表于 2012-6-27 23:07 | 显示全部楼层 |阅读模式
一、好方法:修改主题
     废话少说,写本文的主要目的还是教大家如何抛弃这款Some Chinese Please插件,不过方法还是学它的,主要功能还是Some Chinese Please的功能,只需加几行代码即可。下面是新的实现方法,只需修改你当前使用的主题目录下的functions.php就可以了,而且不会受到的WordPress升级的影响,实现原理与Some Chinese Please插件一样,只是少了一个后台而已。具体修改:打开当前使用的主题目录下的functions.php,在将第一个 <?php 替换成:
1
2
3
4
5
6
7
8
9
10
11

<?php
function scp_comment_post( $incoming_comment ) {
    $pattern = '/[一-龥]/u';

    // 禁止全英文评论
    if(!preg_match($pattern, $incoming_comment['comment_content'])) {
        wp_die( "You should type some Chinese word (like \"你好\") in your comment to pass the spam-check, thanks for your patience! 您的评论中必须包含汉字!" );
    }
    return( $incoming_comment );
}
add_filter('preprocess_comment', 'scp_comment_post');


     最后以 UTF-8 编码将functions.php另存为,而不是直接点保存,覆盖原来的functions.php文件(否则你的博客评论会出错),上传到你的博客空间,一切OK!
二、笨方法:修改源文件
     以下方法是通过修改WordPress源文件来实现的,所以每次WordPress升级后,wp-comments-post.php文件都会被覆盖,这就需要你重新修改这个文件,而且不同版本的代码可能会不太一样,对于频繁升级的WordPress来说比较不便的。言归正传,用文本编辑器打开WordPress安装目录下的wp-comments-post.php,查找
1

// If the user is logged in

     好,将其替换成:
1
2
3
4
5
6
7

$pattern = '/[一-龥]/u';

if(!preg_match($pattern, $comment_content)) {
    wp_die( "You should type some Chinese word (like \"你好\") in your comment to pass the spam-check, thanks for your patience! 您的评论中必须包含汉字!" );
}

// If the user is logged in


     以上代码实现的基本原理是,判断评论内容是否包含汉字,如果一个汉字都没有,则给出错误提示,评论无法提交,这样垃圾评论也没有存储到数据库中,达到了屏蔽英文垃圾评论的目的。修改后的代码,应该差不多像这样子:

     最后以 UTF-8 编码将wp-comments-post.php另存为,覆盖原文件(否则你的博客评论会出错),上传到你的博客空间,一切OK!刷新你的博客,试试在文章评论中输入一串英文字母,看看有什么效果!
     如果你死活都不知道怎么改,或者改了不见什么效果,可以下载我修改好的wp-comments-post.php,点此下载。下载完成后,覆盖你原来的wp-comments-post.php即可。注意:该文件对应WordPress 2.9.2版本;覆盖之前先复制好一份你原来的wp-comments-post.php
     真舒服!现在就可以停掉Akismet和Some Chinese Please这两款插件了。
使用说明
  • 以上所做的更改在WordPress 2.9.2 中进行,至于其他版本的代码是否相似,我没有测试过,你可以自己试试看
  • 如果你的WordPress升级了的话,下次你还得照以上方法做一下修改,如果嫌麻烦你还是用以下第一个好方法或插件吧!

联系我们|手机版|欧卡2中国 ( 湘ICP备11020288号-1 )

GMT+8, 2024-3-29 19:06 , Processed in 0.037356 second(s), 11 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表