WordPress将垃圾评论阻挡在门外
发布:smiling 来源: PHP粉丝网 添加日期:2014-03-24 16:45:15 浏览: 评论:0
垃圾评论是各位wordpress博客主的一个头痛的问题当然也包括了我了,现在我整理了一些关于垃圾评论的防止方法,希望这些代码能帮助各位解决头痛之事呀.
今天,翼帆远航将介绍两种把垃圾评论阻挡在门外的方法。
一般情况下,我们会使用著名的反垃圾评论插件:Akismet 来阻止垃圾评论的入侵,Akismet 会将所有识别出的垃圾评论分离出来,并提供一键清理垃圾评论的功能,虽然 Akismet 几乎能够 100% 识别出垃圾评论,但由于每天的垃圾评论实在太多,天天点“一键清理”也不是办法,有没有更加实用的解决方案,能将垃圾评论在提交之前先拦截下来呢?
我们先来分析垃圾评论的类型:
纯英文或含有日文、韩文等他国语言的垃圾评论
固定某个网站用于推广的垃圾评论
对于这两类垃圾评论,我们对症下药,使用两种方法,分别将这两类垃圾评论阻挡在门外。
方法一:不允许纯英文或包含日文、韩文等他国语言的评论提交
将以下代码插入主题目录 functions.php 的合适位置:
- // 禁止全英文和日文评论
- function v7v3_comment_post( $incoming_comment ) {
- $pattern = '/[一-?]/u';
- $jpattern ='/[ぁ-ん]+|[ァ-ヴ]+/u';
- if(!preg_match($pattern, $incoming_comment['comment_content'])) {
- err( "写点汉字吧,博主外语很捉急! Please write some chinese words!" );
- }
- if(preg_match($jpattern, $incoming_comment['comment_content'])){
- err( "日文滚粗!Japanese Get out!日本?出て行け!" );
- }
- return( $incoming_comment );
- }
- add_filter('preprocess_comment', 'v7v3_comment_post');
温馨提示:若使用以上代码出现异常,请尝试将第 6 行和第 9 行的 err 换成 wpdie。
方法二:阻止含有违禁关键字的评论提交
将以下代码插入主题目录 functions.php 的合适位置:
- // 禁止包含违禁关键字的评论提交到数据库
- function v7v3_fuckspam($comment)
- {
- if (is_user_logged_in())
- {
- return $comment;
- }
- if (wp_blacklist_check(
- $comment['comment_author'],
- $comment['comment_author_email'],
- $comment['comment_author_url'],
- $comment['comment_content'],
- $comment['comment_author_IP'],
- $comment['comment_agent']
- ))
- {
- header("Content-type: text/html; charset=utf-8");
- err('
- 您的评论包含违禁关键字,或者您的IP已被加入黑名单,如有疑问请联系管理员处理!
- ');
- }
- else
- {
- return $comment;
- }
- }
- add_filter('preprocess_comment', 'v7v3_fuckspam');
温馨提示:若使用以上代码出现异常,请尝试将第 6 行和第 9 行的 err 换成 wpdie。
违禁关键字的设置在“仪表盘——设置——讨论——评论黑名单”,一个违禁关键字占一行,此方法依旧是来自 Willin Kan 大师(可惜他已经退出WordPress圈),折腾很简单,直接将下面的代码放到主题的functions.php文件的最后一个 ?>前面即可
代码如下:
- / 垃圾评论拦截
- class anti_spam {
- function anti_spam() {
- if ( !current_user_can('level_0') ) {
- add_action('template_redirect', array($this, 'w_tb'), 1);
- add_action('init', array($this, 'gate'), 1);
- add_action('preprocess_comment', array($this, 'sink'), 1);
- }
- }
- function w_tb() {
- if ( is_singular() ) {
- ob_start(create_function('$input','return preg_replace("#textarea(.*?)name=(["'])comment(["'])(.+)/textarea>#",
- "textarea$1name=$2w$3$4/textarea><textarea name="comment" cols="100%" rows="4" style="display:none"></textarea>",$input);') );
- }
- }
- function gate() {
- if ( !emptyempty($_POST['w']) && emptyempty($_POST['comment']) ) {
- $_POST['comment'] = $_POST['w'];
- } else {
- $request = $_SERVER['REQUEST_URI'];
- $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '隐瞒';
- $IP = isset($_SERVER["HTTP_X_FORWARDED_FOR"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] . ' (透过代理)' : $_SERVER["REMOTE_ADDR"];
- $way = isset($_POST['w']) ? '手动操作' : '未经评论表格';
- $spamcom = isset($_POST['comment']) ? $_POST['comment'] : null;
- $_POST['spam_confirmed'] = "请求: ". $request. "n来路: ". $referer. "nIP: ". $IP. "n方式: ". $way. "n?热? ". $spamcom. "n -- 记录成功 --";
- }
- }
- function sink( $comment ) {
- if ( !emptyempty($_POST['spam_confirmed']) ) {
- if ( in_array( $comment['comment_type'], array('pingback', 'trackback') ) ) return $comment;
- //方法一: 直接挡掉, ? die(); 前面两斜线?h除即可.
- die();
- //方法二: 标记为 spam, 留在资料库检查是否误判.
- //add_filter('pre_comment_approved', create_function('', 'return "spam";'));
- //$comment['comment_content'] = "[ 小墙判断这是 Spam! ]n". $_POST['spam_confirmed'];
- }
- return $comment;
- }
- }
- $anti_spam = new anti_spam();
Tags: WordPress 垃圾评论
- 上一篇:WORDPRESS修改用户名称的方法
- 下一篇:wordpress博客常用插件推荐
相关文章
- ·WordPress初级教程1:什么是博客?(2013-11-11)
- ·WordPress初级教程-2: 什么是WordPress?(2013-11-11)
- ·WordPress初级教程-3: WordPress的功能和特点(2013-11-11)
- ·WordPress初级教程-4: 选择WordPress博客的主机和域名(2013-11-11)
- ·WordPress初级教程-5: 安装WordPress(2013-11-11)
- ·WordPress初级教程-6: 本地安装WordPress(2013-11-11)
- ·WordPress初级教程-7: 一个数据库中安装多个WordPress博客(2013-11-11)
- ·WordPress初级教程-8: WordPress控制面板/ Dashboard(2013-11-11)
- ·WordPress初级教程-9: WordPress用户设置/ Users(2013-11-11)
- ·WordPress初级教程-10: WordPress博客配置/ Settings(2013-11-11)
- ·关于wordpress上传图片不显示的原因(2013-11-11)
- ·WordPress程序的脆弱点你知道吗 (2013-11-11)
- ·总结八大Wordpress网站百度收录实现秒收的方法绝招 (2013-11-11)
- ·WordPress如何网站投稿者也可以上传图片(2014-03-18)
- ·WordPress怎么修改新用户注册邮件内容(2014-03-18)
- ·WordPress怎么添加前台注册功能(2014-03-18)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)