本文主要介绍了Wordpress自动将带有长链接的评论标记为垃圾评论的方法,并介绍了几种常用的经典方法,有一定的参考价值,有需要的朋友可以参考一下。
这篇文章描述了Wordpress如何自动将带有长链接的评论标记为垃圾评论。分享给你,供你参考。具体分析如下:
现在大量的机器可以直接评论WordPress博客,有大量的链接。这些带有链接的评论被归类为垃圾评论。以下是一些自动将带有长链接的评论标记为垃圾评论的方法。
方法一:这个方法还是出自WillinKan大师(可惜他已经退出WordPress)。折腾起来很简单。只是把下面的代码放在主题的最后一个functions.php文件中?>就这样,代码如下:
复制代码如下://垃圾评论拦截
类anti_spam{
函数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);
}
}
functionw_TB(){
if(is_singular()){
ob_start(create_function('$input','returnpreg_replace(#textarea(。*?)name=(["'])comment(["'])(。+)/textarea>;#",
"textarea$1name=$2w$3$4/textarea>;<textareaname="comment"cols="100%"rows="4"style="display:none"></textarea>;",$input);'));
}
}
函数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']:'hide';
$IP=isset($_SERVER["HTTP_X_FORWARDED_FOR"])?$_server["http_x_forwarded_for"]。(通过代理)':$_SERVER["远程_ADDR"];
$way=isset($_POST['w'])?'手动 *** 作“:”未注释的形式;
$spamcom=isset($_POST['comment'])?$_POST['comment']:null;
$_post['spam_confirmed']="request:"。$请求。"nRoute:"。$$referer。"nIP:"。$IP。“nip。”nWay:“。$way。”n?热吗?".$spamcom。n-成功录制-";
}
}
函数接收器($comment){
if(!emptyempty($_POST['spam_confirmed']){
if(in_array($comment['comment_type'],array('pingback','trackback'))返回$comment;
//方法一:直接屏蔽,?die();前面两个斜线?h是可以分的。
die();
//方法二:标记为垃圾邮件,留在数据库中检查是否误判。
/Add_filter('pre_comment_approved',create_function(','return"SPAM'));
/$comment['comment_content']="[小墙判断这是垃圾邮件!]n"。$_POST['spam_confirmed'];
}
return$comment;
}
}
$anti_spam=newanti_spam();
这种方法可以阻止98%以上的垃圾评论。当然,孟倡导也建议你对第一次提交的评论进行审核,设置审核后显示。如果遇到垃圾评论,只需添加他们的邮箱、IP、URL等即可。加入黑名单。下面是萌主目前的评论设置,可以在WP后台-设置-讨论下设置。
方法二:自动拒绝包含特定关键词的垃圾评论,在主题的functions.php文件中添加以下代码,根据需要修改$bad_comment_content数组的内容。$bad_comment_content数组中包含的任何字符都将被自动拒绝。代码如下:
复制代码如下:functionin_comment_post_like($string,$array){
foreach($arrayas$ref){if(strstrstr($string,$ref)){returntrue;}}
返回false
}
functiondrop_bad_comments(){
if(!emptyempty($_POST['comment']){
$POST_comment_content=$_POST['comment'];
$lower_case_comment=strtolower($_POST['comment']);
$bad_comment_content=array(
'伟哥',
'氢可酮',
'脱发',
'xanax',
'曲马多',
'俄罗斯女孩',
'俄罗斯新娘',
'劳拉西泮',
'adderall',
'地塞米松',
'不
if(in_comment_post_like($lower_case_comment,$bad_comment_content)){
$comment_box_text=wordwrap(trim($post_comment_content),80,"n",true);
$txtdrop=fopen('/var/log/httpd/WP_post-logger/nullamatix.com-text-area_dropped.txt','a');
fwrite($txtdrop,"-n[COMMENT]="。$post_comment_content。“n-n”);
fwrite($txtdrop,"[SOURCE_IP]="。$_SERVER['远程_ADDR']。"@".日期(“Fj,Y,g:ia”)。“n”);
fwrite($txtdrop,"[USERAGENT]="。$_SERVER['HTTP_USER_AGENT']。“n”);
fwrite($txtdrop,"[REFERER]="。$_SERVER['HTTP_REFERER']。“n”);
fwrite($txtdrop,"[文件名]="。$_SERVER['脚本名称']。"-[REQ_URI]="。$_SERVER['请求_URI']。“n”);
fwrite($txtdrop,'-***********-'。“n”);
header("HTTP/1.1406不可接受");
header("状态:406不可接受");
header("Connection:Close");
wp_die(__('bangbang。'));
}
}
}
add_action('init','drop_bad_comments');
我今天补充一下。带有长链接的评论会被自动标记为垃圾评论。只需在主题的functions.php文件中添加以下代码:
复制代码如下:函数rkv_URL_spamcheck($approved,$commentdata){
return(strlen($commentdata['comment_author_URL'])>;50)?垃圾邮件“:$已批准;
}
add_filter('pre_comment_approved','rkv_url_spamcheck',99,2);
注意第二行的50,根据自己的需要修改这个值。如果想让所有带链接的评论(不管长不长)都自动标记为垃圾评论,把50改成1就行了。
我希望这篇文章能帮助你建立你的WordPress网站。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)