最近は海外からのスパムが非常に増加していて、困っている方も多いのでは。
私もその一人です。「reCAPTCHA」も設定するとある程度解決はするのですが、普通にメールフォームからメールを送りたい方には、負担になります。
何かとイタチごっこのスパム対策ですが、Contact form7を使っている方で、とりあえずこれをやってみてください、スパムが少なくはなります。(※日本語向け対策です)
設定方法
function.php
function wpcf7_validate_spam_message( $result, $tag ) {
$value = str_replace(array(PHP_EOL,' '), '', esc_attr($_POST['your-name']));
if (!empty($value)) {
if (preg_match('/^[!-~]+$/', $value)) {
$result['valid'] = false;
$result['reason'] = array('your-name' => '日本語で入力してください');
}
}
$value = str_replace(array(PHP_EOL,' '), '', esc_attr($_POST['your-message']));
if (!empty($value)) {
if (preg_match('/^[!-~]+$/', $value)) {
$result['valid'] = false;
$result['reason'] = array('your-message' => '日本語で入力してください');
}
}
return $result;
}
add_filter( 'wpcf7_validate', 'wpcf7_validate_spam_message', 10, 2 );
Contact form7のフォーム入力フィールド名が「your-message」「your-name」の場合になります。(※初期設定フィールド)
どちらか一方のフィールドではなく「your-message」「your-name」ともに日本語(2バイト)が使われていない場合は、送信することが出来ません。
コメント