腾讯云服务器优惠活动华纳云香港服务器

纯代码实现自动替换WordPress评论内容中的敏感词

WordPress主题推荐

玩 WordPress 博客的人都知道“和谐”的重要性,千辛万苦的建设、更新、维护一个博客有时候往往几个“不和谐”的关键词就可以让你的博客瞬间“毁灭”,所以说很多博主对“评论”也是严防死守,甚至采用了很偏激的五花八门的方式来“限制”和“人为制造评论障碍”来防范这些“不和谐”的评论(关于这方面明月其实已经在【说说博客评论的那些事儿】、【再说博客评论的那些事儿 分享防范“垃圾评论”经验】多次的讲到过了),明月其实一直都是喜欢使用 WordPress 自带的“评论关键词”屏蔽以及“评论黑名单”来隐性的防范,个人感觉这也是最佳方式,除了这两个方法外,其实还可以借助“代码”来使我们的评论更加的和谐,今天明月就分享一个【露兜博客】的『WordPress评论文字自动替换』代码,感觉这也是一种很不错的方法,很值得收藏备用的代码。

纯代码实现自动替换WordPress评论内容中的敏感词-第1张-boke112百科(boke112.com)

如果你的 WordPress 博客是搭建在国内的主机上,那么你得注意一下你的网站内容了,必须接受国内相关机构的监管,如果你的网站如果出现了某某非法关键字,那么你的网站可能很快就要被关停了。当然这只是一方面,WordPress 的文章评论区是一个相对自由的地方,你可能很难监管到,还可能会出现一些庸俗、谩骂的内容,你可以将这些给替换掉,不必删除整条评论,这样既可以继续开启评论功能,又可以消除影响。

一、评论显示时替换

此方法不会更改评论的原始内容,只会在评论显示给访客时替换相应的关键字,你在后台看到的仍然是评论的原文。在主题目录下的 functions.php 中将最后一个 ?> 替换成:

  1. /**
  2.  * 名称:WordPress评论文字自动替换
  3.  * 作者:露兜
  4.  * 博客:http://www.ludou.org/
  5.  * 最后修改:2011年2月20日
  6.  */
  7. function dali_conents_replace($incoming_comment){
  8. $words=’这里填替换规则’;
  9. $rules=explode(‘||’,$words);
  10. foreach($rulesas$rule){
  11. $word=explode(‘->’,trim($rule));
  12. if(isset($word[1]))
  13. $incoming_comment=str_replace(trim($word[0]),trim($word[1]),$incoming_comment);
  14. }
  15. return$incoming_comment;
  16. }
  17. add_filter(‘comment_text’,’dali_conents_replace’);
  18. add_filter(‘comment_text_rss’,’dali_conents_replace’);
  19. ?>

请将以上代码中第 2 行中这里填替换规则替换成你自己的规则,规则请按以下格式填写:

  1. 关键字A->替换A || 关键字B->替换B || 关键字C->替换C

关键字 A 在实际显示时将被替换成替换 A,依此类推,多个替换规则之间请用 || 隔开。

示例:

  1. $words=’傻逼->牛逼 || shit->haha’;
温馨提示

如果想实现文章内和摘要内的敏感词替换(文章都是自己编辑的,一般都不会出现敏感词),可在方法一代码后面增加以下代码:

  1. add_filter(‘the_content’, ‘dali_conents_replace’); //正文
  2. add_filter(‘the_excerpt’, ‘dali_conents_replace’); //摘要

二、评论添加时替换

此方法将直接替换访客发布的评论内容,数据库中存储的评论就是替换后的内容,在主题目录下的 functions.php 中将最后一个  ?>  替换成:

  1. /**
  2.  * 名称:WordPress评论文字自动替换
  3.  * 作者:露兜
  4.  * 博客:http://www.ludou.org/
  5.  * 最后修改:2011年2月20日
  6.  */
  7. function dali_conents_replace($incoming_comment){
  8. $words=’这里填替换规则’;
  9. $rules=explode(‘||’,$words);
  10. foreach($rulesas$rule){
  11. $word=explode(‘->’,trim($rule));
  12. if(isset($word[1]))
  13. $incoming_comment[‘comment_content’]=str_replace(trim($word[0]),trim($word[1]),$incoming_comment[‘comment_content’]);
  14. }
  15. return$incoming_comment;
  16. }
  17. add_filter(‘preprocess_comment’,’dali_conents_replace’);
  18. ?>

替换规则的书写方式请参考以上的方法一。

三、结语

首先非常的感觉【露兜博客】的代码分享。明月还是那个态度,垃圾评论、不和谐评论的防范并不只有“降低博客评论体验”这一种“伤敌一万,自损八千”的“葵花宝典”式方法,其实还有很多更加实用和有效的方法可以使用的。希望那些还在使用“难以辨识的验证码”、“必须登录注册后评论”等等拒人于千里之外的评论体验博客们有所改变(具体大家可以看看【说说博客评论的那些事儿】里面有没有自己采用的方式)

不多说了,说起评论来,明月苦水太多了,想通过评论来交更多的草根博客好友,可是现实真残酷!评论某些博客几乎都成了“噩梦”了,唉!严重打击我的评论积极性呀!我自己的博客我连“滑动解锁”评论都不愿意使用!

赞 (0) 打赏
版权声明:本文为投稿文章,感谢 明月登楼的博客 的投稿,版权归原作者所有!发布此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请联系我们,确认后马上更正或删除,谢谢!
香港云主机55元/年
wu