WordPress 精简版评论文明用语插件

作者:Showfom   来源:http://showfom.com/comments-text-replace/

经常上那个C什么B的网站的童鞋都知道,那个小气的网站,只要 IP 和 Cookies不是在黑名单,发表的评论假如有敏感词的话,你的评论可以提交,但是会显示成”文明用语“,这就是文明用语一词的来源。

今天 @Scavin 青蛙童鞋在 Twitter 上大叫需要一款能过滤评论一些敏感词的插件。

身为小众的作者(我都不好意思了,大半年才更新过两篇文章哈哈),于是我自告奋勇接下了这个任务,顺便把这个简单的插件分享出来。

根据 插件 Hooks ,使用 add_filter 即可,虽然我不太懂 php,但是还是可以照样画葫芦的,直接参考水煮鱼的 Comments Link Redirect ,稍微修改,搞定了第一个版本,但是太简单,也不推荐,所以只是放出代码以供大家交流:

第一版主要代码:

add_filter('comment_text', 'new_comments', 1);

function new_comments($text = ''){
$text=str_replace("敏感词一", "文明用语", $text);

$text=str_replace("敏感词二", "文明用语", $text);

return $text;
}

可以看到 $text=str_replace("敏感词一", "文明用语", $text); 这句只能用一个敏感词,需要多个敏感词的时候,只能一行一行加,太不方便了。

后来请教了著名的 php 砖家 小小子 ,趁着休息时间,在我再三纠缠下,终于弄出了第二版,直接用正则式表达判断,高级吧?深奥吧?砖家就是砖家,我这样的小白对砖家佩服得一塌糊涂,哇咔咔。要是我有这么高超的技术,哇咔咔,一天做一个 插件,嗯,当然那是不可能的。本着学习的态度,先放一下第二版主要的代码以供大家学习:

add_filter('comment_text', 'new_comments', 99);

function new_comments($text = ''){
$arr = array("敏感词一","敏感词二","敏感词三");

$pattern = "/".implode("|",$arr)."/";

$result = preg_replace($pattern,"文明用语",$text);

return $result;
}

很帅吧?到底是砖家,嗯嗯,过几天的 WordCamp 上一定要膜拜膜拜 , 欧也!

看得心动了?迫不及待要试试来巩固自己的评论系统了?好,立马放出(这个插件太简单了,我就不提交到官网去,多那啥哈哈):

下载:http://showfom.googlecode.com/files/comments_text_replace.zip

使用方法:直接将 comments_text_replace.php 放到 wp-content/plugins 目录即可,后台激活,自己修改(可以增加减少)敏感词,至于敏感词的词汇,自己找去吧,在这个和谐的社会,我们需要和谐!

PS:我这个版本太简单了,只能控制评论,并且后台看到的也是显示”文明用语“,想要稍微高级点的,可以试试江东写的文明用语插件


没有评论: