TAG
contactorm7で日本語入力のみに制限する方法
contactorm7で日本語入力のみに制限する方法をメモ
functions.phpに
function wpcf7_validate_mb_char( $result, $tag ) {
$field_name = 'your-message'; //チェックしたいフォームフィールド名
$value = str_replace(array("\r", "\n", ' ', ' '), '', $_POST[$field_name]); //改行とスペースを取り除く
$min_rate = 50; //(%)最小日本語文字数の割合(これ以上でなければエラー)
$str_l = mb_strlen($value , "UTF-8"); // 文字数取得(ダブルクオーテーション必須)
$str_w = mb_strwidth($value, "UTF-8"); // 文字幅(半角1、全角2でカウント)
$str_mb = $str_w - $str_l; // 日本語(マルチバイト)の文字数取得
$str_mb_rate = ($str_mb / $str_l) * 100; // 日本語文字数の割合を計算
if (!empty($value)) {
if ($str_mb_rate < $min_rate) {
$result['valid'] = false;
$result['reason'] = array($field_name => '日本語で入力してください。');
}
}
return $result;
}
add_filter( 'wpcf7_validate', 'wpcf7_validate_mb_char', 10, 2 );
でOK
your-messageの部分はcontactform7で設定しているフィールド名を指定します。
WordPressのおすすめ参考書
bookfan 1号店 楽天市場店
¥3,300 (2026/01/20 15:42時点 | 楽天市場調べ)

