从建站到现在,每天都被垃圾评论烦恼着,最近无奈抽出时间百度相关资料,现在整理出一些方法来对付 WordPress 主题垃圾评论的方法!有相同问题的 WordPress 主题主题
爱好者们可以尝试一下哈!
首先我们分析下 WordPress 主题垃圾评论主要有哪些形式存在着
一、很多链接,一看就知道是一些垃圾评论,里面出现了 http: 、 href 、等链接标签
于是,应对此操作的最有效方式就是禁止评论里带有 http: 、 href 等字眼的出现!
操作方法:到主题文件根目录下找到 functions.php 文件,打开文件 (编写代码请用代码软件编写,禁止用记事本,极易编码出错)
在文件最下面的 ?> 前面粘贴下面的代码
- function lianyue_comment_post( $incoming_comment ) {
- $http = ‘/[<|=|.|友|夜|KTV|ッ|の|ン|優|業|グ|貿|]/u’;
- if(preg_match($http, $incoming_comment[‘comment_content’])) {
- wp_die( “ 万恶的发贴机!” );
- }
- return( $incoming_comment );
- }
- add_filter(‘preprocess_comment’, ‘lianyue_comment_post’);
其中灰色代码位置就是屏蔽的字段,可以自定义自己要屏蔽的!本站也整理了一些相关的可以屏蔽的词
例如:
- |<|=|.|友|夜|KTV|ッ|の|ン|優|業|グ|貿|
这些词也经常在 WordPress 主题垃圾评论中出现,加入进上面的灰色位置里即可!
二、 WordPress 主题垃圾评论里有很多的英文,几乎全英文的
我们可以设置为评论内容里必须包含汉字,至少在国内这样的操作是合理的吧!
操作方法同样是打开 functions.php 文件,然后添加一下代码:
- function lianyue_comment_post( $incoming_comment ) {
- $pattern = ‘/[一-龥]/u’;
- // 禁止全英文评论
- if(!preg_match($pattern, $incoming_comment[‘comment_content’])) {
- wp_die( “ 您的评论中必须包含汉字,否则将被视为发贴机!” );
- }
- return( $incoming_comment );
- }
- add_filter(‘preprocess_comment’, ‘lianyue_comment_post’);
上面的代码的意思就是说,评论内必须包含汉字,否则评论将不通过!
目前从这两点可以从根本上遏制垃圾评论的出现,上面两个手段都想用的朋友可以使用下面的代码,我做了下整合处理,效果就是必须包含中文字符和不准包含指定字符的代码!
- /* 评论必须有中文和禁止某些字段出现 */
- function lianyue_comment_post( $incoming_comment ) {
- $pattern = ‘/[一-龥]/u’;
- $http = ‘/[<|=|.|友|夜|KTV|ッ|の|ン|優|業|グ|貿|]/u’;
- // 禁止全英文评论
- if(!preg_match($pattern, $incoming_comment[‘comment_content’])) {
- wp_die( “ 您的评论中必须包含汉字,否则将被视为发贴机!” );
- }elseif(preg_match($http, $incoming_comment[‘comment_content’])) {
- wp_die( “ 万恶的发贴机,这里不允许放链接,如需交换链接请联系站长!” );
- }
- return( $incoming_comment );
- }
- add_filter(‘preprocess_comment’, ‘lianyue_comment_post’);
这样的措施是为了避免垃圾评论里又有中文,又有链接的存在,所谓限制的更全面,有些朋友会说,那那些换友链的怎么办? 我只能说,鱼与熊掌不能兼得,至少目前以换友情链接为目地的垃圾评论也很多,他们根本就没想和你换,仅仅是一个外链的存在着!
考虑到有些 WordPress 主题主题使用了 ajax 评论,提示错误时可能会出现布局混乱,解决办法:
打开 comments-ajax.php 找到最后个 err( __(并
在下一行增加:
- $pattern = ‘/[一-龥]/u’;
- if (!preg_match($pattern,$comment_content) )
- err( __(‘ 您的评论中必须包含汉字,否则将被视为发贴机!’) );
- $http = ‘/[<|=|.|友|夜|KTV|ッ|の|ン|優|業|グ|貿|]/u’;
- if (preg_match($http,$comment_content) )
- err( __(‘ 万恶的发贴机,这里不允许放链接,如需交换链接请联系站长!’) );
每个 WordPress 主题主题的 ajax 评论都不一样,请参阅后自行修改!
以上是通过代码,十分简易的实现了防止 WordPress 主题垃圾评论的措施,当然也有很多的插件可以完成,最简单的插件就是多说插件,又美观评论又可以抵挡 WordPress 主题垃圾评论,各位看管,自行选择哈!!