用代碼實現wordpress評論留言,wordpress數字驗證,過濾垃圾評論
點擊數: 2102
文章目錄
我這邊提供兩種方法。
也是比較簡單的方法。
雖然有些人是透過修改外掛的方式,達到不靠外掛,也有亮麗的驗證方式。
但常常無法適用於普遍主題。
而現在wordpress主題太多了,用通用的代碼,比較可以簡單實現功能。
這邊我提供兩種方式。
第一種方式「自動生成4位數字」
開啟主題的function.php加入以下代碼
- // ADD: Anti-spam Code
- //自動生成4位數字
- function olo_antispam(){
- if(!is_user_logged_in()){
- //$pcodes = substr(md5(mt_rand(0,99999)),0,4); //驗證碼為英文+數位組合
- $pcodes = substr(mt_rand(0,99999),0,4); //驗證碼為數位組合
- $str = '
class="olo_anti">';
- $str .= '';
- $str .= '"text" size="4" id="subpcodes" name="subpcodes" />';
- $str .= 'class="pcodes">'.$pcodes.'';
- $str .= '"hidden" value="'.$pcodes.'" name="pcodes" />';
- $str .= '';
- echo $str;
- }
- }
- add_action('comment_form', 'olo_antispam', 1, 1);
- function yanzhengma(){
- if ( !is_user_logged_in() ) {
- $pcodes = trim($_POST['pcodes']);
- $subpcodes = trim($_POST['subpcodes']);
- if((($pcodes)!=$subpcodes) || empty($subpcodes)){
- wp_die( __('錯誤!請輸入正確的驗證碼') );
- }
- }
- }
- add_filter('pre_comment_on_post', 'yanzhengma');
第二種方法「數字加法驗證法」
開啟主題的function.php加入以下代碼
- //數字加法驗證法
- add_action('comment_form', 'spam_protection_math', 1, 1);
- function spam_protection_math(){
- //隨便取得兩個亂數, 範圍0~9
- $num1=rand(0,9);
- $num2=rand(0,9);
- //從網頁中的具體內容
- echo "
$num1 + $num2 = ?"
- .""
- .""
- ."";
- }
- function spam_protection_pre($commentdata){
- $sum=$_POST['sum'];//訪客提交的計算結果
- switch($sum){
- //得到正確的計算結果則直接跳出
- case $_POST['num1']+$_POST['num2']:break;
- //未填寫結果時的錯誤訊息
- case null:wp_die('錯誤: 沒有輸入驗證碼,請再驗證碼.');break;
- //計算錯誤時的錯誤訊息
- default:wp_die('錯誤: 驗證碼錯誤,請輸入正確的驗證碼.');
- }
- return $commentdata;
- }
- if($comment_data['comment_type']==''){
- add_filter('pre_comment_on_post','spam_protection_pre');
- }