php批量评价,彻底杜绝 WordPress 批量垃圾评论留言的三步曲
本文將詳細介紹如何采取三步曲徹底告別煩人的 WordPress 批量垃圾評論問題,還你一個干凈清爽的后臺評論區。
剛開始使用 WordPress 程序建站的朋友們肯定或多或少都被其批量垃圾評論困擾過。然后大家就開始尋思解決的辦法,找到的網上說法大都是 Akismet Anti-Spam 等類似 WP 插件或者是添加一些代碼。
這些方法像 WP自帶的 Akismet Anti-Spam 插件要么需要去第三方注冊還會給數據庫增加垃圾數據拖慢網站,要么就是代碼功能不全面還有大量的“漏網之魚”,總之就是效果都不盡如人意。
防止 WordPress 垃圾評論留言
下面將遇到的不同類型的 wordpress 批量垃圾評論留言采取針對性的反制三步曲,爭取徹底告別批量的垃圾評論留言。
首先,限制訪問 WP 網站根目錄下 wp-comments-post 文件
為什么很多人安裝了各種添加數字、圖片或滑動按鈕等類似驗證碼功能的插件而批量垃圾評論沒見明顯減少呢,就是因為這類垃圾評論不用填寫表單直接 post wp-comments-post 文件而來,所以再多的驗證碼也無濟于事,所以限制 wp-comments-post 文件的訪問權限就能基本防止這類垃圾評論了。
禁止訪問 wp-comments-post 文件的方法因網站安裝環境不同而有多種,這里就說一下 Apache 下利用 .htaccess 限制 IP 訪問的辦法。
在根目錄的 .htaccess 文件中添加以下代碼:
Order deny,allow
Deny from All
Allow from 127.0.0.1
其中,第4行可以更改添加你所允許的特定 IP 地址或者刪除什么都不加。
第二步,非插件代碼式的添加計算結果驗證碼
限制直接 post wp-comments-post 文件的批量垃圾評論后還有機器人批量導入表單的垃圾留言需要解決,這就需要簡單的驗證碼來實現了,但這么一個簡單的功能還要安裝一個插件消耗網站資源,怎么想都不是很劃算,所以這里就用添加代碼的方法來實現了。
在你主題目錄下的 funtions.php 文件加入以下代碼:
//自定義算術驗證函數
function spam_protection_math(){
//獲取兩個隨機數, 范圍0~9
$num1=rand(0,9);
$num2=rand(0,9);
//最終網頁中的具體內容
echo
""
.""
."";
}
function spam_protection_pre($commentdata){
$sum=$_POST['sum'];//用戶提交的計算結果
switch($sum){
//得到正確的計算結果則直接跳出
case $_POST['num1']+$_POST['num2']:break;
//未填寫結果時的錯誤訊息
case null:err('抱歉: 請輸入下面框中的計算結果.');break;
//計算錯誤時的錯誤訊息
default:err('錯誤: 輸入的計算結果不正確,請重新輸入!');
}
return $commentdata;
}
if(!is_user_logged_in() && $comment_data['comment_type']==''){
add_filter('preprocess_comment','spam_protection_pre');
}
并在你的主題文件夾下 commenter.php 文件的相應位子加入調用代碼:(一般就是就是昵稱和郵箱下面和提交評論按鈕前的地方)
注意:可以適當修改 css 從而配合你的主題樣式(一般就是套用昵稱和郵箱的 css樣式即可),如有什么不清楚的地方可下面留言共同探討!
最后,再完善一下,禁止非漢字評論和限制評論字數
還是在當前 WP 主題目錄下的 funtions.php 文件中加入代碼:
// WordPress留言禁止非漢字評論
function BYMT_comment_post( $incoming_comment ) {
$pattern = '/[一-龥]/u';
$jpattern ='/[ぁ-ん]+|[ァ-ヴ]+/u';
if(!preg_match($pattern, $incoming_comment['comment_content'])) {
err( "抱歉,您的評論必須含有漢字" );
}
if(preg_match($jpattern, $incoming_comment['comment_content'])){
err( "抱歉,您的評論必須含有漢字" );
}
return( $incoming_comment );
}
add_filter('preprocess_comment', 'BYMT_comment_post');
//WordPress留言評論字數限制
function Paopao_comment_length( $commentdata ) {
$minCommentlength = 5; //最少輸入2個字
$maxCommentlength = 100; //最多輸入100個字
$pointCommentlength = mb_strlen($commentdata['comment_content'],'UTF8'); //mb_strlen 1個中文字符當作1個長度
if ( $pointCommentlength < $minCommentlength )
{
err( __('抱歉,您的評論太短了,請至少輸入'. $minCommentlength .'個字(已輸入'. $pointCommentlength .'個字)') );
}
if ( $pointCommentlength > $maxCommentlength )
{
err( __('抱歉,您的評論太長了,請不要超過'. $maxCommentlength .'個字(已輸入'. $pointCommentlength .'個字)') );
}
return $commentdata;
}
add_filter( 'preprocess_comment', 'Paopao_comment_length' );
以上代碼都可以根據自己的需要適當修改,如提示語言和限制字數的多少。
好了,完成上面的三步曲后,一段時間后你再看看你的 wordpress 網站還會有批量垃圾評論留言了嗎,是不是感覺整個世界都清凈了!(* ̄︶ ̄)
總結
以上是生活随笔為你收集整理的php批量评价,彻底杜绝 WordPress 批量垃圾评论留言的三步曲的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dnf最高配置的电脑配置?
- 下一篇: DNF搬砖工作室电脑配置?