Contact Form 7でスパム対策として入力内容が日本語の場合のみ送信可能にする方法:WordPress
最終更新日:
WordPressの「Contact Form 7」で
スパム対策として入力内容が日本語の場合のみ送信可能にする方法をご紹介します。
スパム対策は色々方法があるかと思いますが、
ContactForm7を使用している場合で、日本人をターゲットにした問合せフォームの場合
一番簡易的にスパム対策をできる方法は下記かと思います。
functions.php
functions.phpに
//textareaに日本語エラーチェック(contact form7)
add_filter('wpcf7_validate_textarea', 'wpcf7_validation_textarea_hiragana', 10, 2);
add_filter('wpcf7_validate_textarea*', 'wpcf7_validation_textarea_hiragana', 10, 2);
function wpcf7_validation_textarea_hiragana($result, $tag)
{
$name = $tag['name'];
$value = (isset($_POST[$name])) ? (string) $_POST[$name] : '';
if ($value !== '' && !preg_match('/^.*(?=[^\x01-\x7E\x{FF61}-\x{FF9F} ]+)(?=[^А-я]+).*$/mu', $value)) {
$result['valid'] = false;
$result['reason'] = array($name => '日本語で入力してください。');
}
return $result;
}
上記のソースを追加するだけでOK
これでテキストエリアが英字のみ等の場合は
「日本語で入力してください。」というエラーメッセージが出ますので
海外スパムは対策できるかと思います。
WordPressのおすすめ参考書
bookfan 1号店 楽天市場店
¥3,300 (2026/01/20 15:42時点 | 楽天市場調べ)


