wordpress二次开发:通过屏蔽字段遏制垃圾评论

2015-09-26 13:16 阅读 18 次 评论关闭

wordpress主题下载站,从建站到现在,每天都被垃圾评论烦恼着,最近无奈抽出时间百度相关资料,现在整理出一些方法来对付wordpress垃圾评论的方法!有相同问题的wordpress主题爱好者们可以尝试一下哈!

首先我们分析下wordpress垃圾评论主要有哪些形式存在着

一、很多链接,一看就知道是一些垃圾评论,里面出现了http: 、href、等链接标签

于是,应对此操作的最有效方式就是禁止评论里带有http: 、href等字眼的出现!

操作方法:到主题文件根目录下找到functions.php文件,打开文件(编写代码请用代码软件编写,禁止用记事本,极易编码出错)

在文件最下面的 ?> 前面粘贴下面的代码

  1. function lianyue_comment_post( $incoming_comment ) {
  2. $http = '/[<|=|.|友|夜|KTV|ッ|の|ン|優|業|グ|貿|]/u'; 
  3. if(preg_match($http, $incoming_comment['comment_content'])) { 
  4. wp_die( "万恶的发贴机!" );
  5. }
  6. return$incoming_comment );
  7. }
  8. add_filter('preprocess_comment', 'lianyue_comment_post');

其中灰色代码位置就是屏蔽的字段,可以自定义自己要屏蔽的!本站也整理了一些相关的可以屏蔽的词

例如:

  1. |<|=|.|友|夜|KTV|ッ|の|ン|優|業|グ|貿|

这些词也经常在wordpress垃圾评论中出现,加入进上面的灰色位置里即可!


二、wordpress垃圾评论里有很多的英文,几乎全英文的

我们可以设置为评论内容里必须包含汉字,至少在国内这样的操作是合理的吧!

操作方法同样是打开functions.php文件,然后添加一下代码:

  1. function lianyue_comment_post( $incoming_comment ) {
  2. $pattern = '/[一-龥]/u';
  3. // 禁止全英文评论  
  4. if(!preg_match($pattern$incoming_comment['comment_content'])) {
  5. wp_die( "您的评论中必须包含汉字,否则将被视为发贴机!" );
  6. }
  7. return$incoming_comment );
  8. }
  9. add_filter('preprocess_comment', 'lianyue_comment_post');

上面的代码的意思就是说,评论内必须包含汉字,否则评论将不通过!


目前从这两点可以从根本上遏制垃圾评论的出现,上面两个手段都想用的朋友可以使用下面的代码,我做了下整合处理,效果就是必须包含中文字符和不准包含指定字符的代码!

  1. /* 评论必须有中文和禁止某些字段出现 */
  2. function lianyue_comment_post( $incoming_comment ) {
  3. $pattern = '/[一-龥]/u';
  4. $http = '/[<|=|.|友|夜|KTV|ッ|の|ン|優|業|グ|貿|]/u'; 
  5. // 禁止全英文评论 
  6. if(!preg_match($pattern, $incoming_comment['comment_content'])) { 
  7. wp_die( "您的评论中必须包含汉字,否则将被视为发贴机!" ); 
  8. }elseif(preg_match($http, $incoming_comment['comment_content'])) { 
  9. wp_die( "万恶的发贴机,这里不允许放链接,如需交换链接请联系站长!" );
  10. }
  11. return$incoming_comment );
  12. }
  13. add_filter('preprocess_comment', 'lianyue_comment_post');

这样的措施是为了避免垃圾评论里又有中文,又有链接的存在,所谓限制的更全面,有些朋友会说,那那些换友链的怎么办?我只能说,鱼与熊掌不能兼得,至少目前以换友情链接为目地的垃圾评论也很多,他们根本就没想和你换,仅仅是一个外链的存在着!


考虑到有些wordpress主题使用了ajax评论,提示错误时可能会出现布局混乱,解决办法:

打开comments-ajax.php找到最后个err( __(并

在下一行增加:

  1. $pattern = '/[一-龥]/u';
  2. if (!preg_match($pattern,$comment_content) )
  3. err( __('您的评论中必须包含汉字,否则将被视为发贴机!') );
  1. $http = '/[<|=|.|友|夜|KTV|ッ|の|ン|優|業|グ|貿|]/u';
  2. if (preg_match($http,$comment_content) )
  3. err( __('万恶的发贴机,这里不允许放链接,如需交换链接请联系站长!') );

每个wordpress主题的ajax评论都不一样,请参阅后自行修改!

以上是通过代码,十分简易的实现了防止wordpress垃圾评论的措施,当然也有很多的插件可以完成,最简单的插件就是多说插件,又美观评论又可以抵挡wordpress垃圾评论,各位看管,自行选择哈!!

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:wordpress二次开发:通过屏蔽字段遏制垃圾评论 | 猎微网

评论已关闭!