ContactForm7のエラーメッセージを個別に変更する:WordPress
WordPressのContactForm7のエラーメッセージは管理画面からだと必須項目のエラーメッセージが共通の文章しか変更できず、フォームによっては不便ですのでエラーメッセージを個別に変更する方法をご紹介します。
functions.phpに記述
以下のコードをfunctions.phpに記述します。
add_filter('wpcf7_validate', 'wpcf7_validate_customize', 11, 2);
function wpcf7_validate_customize($result,$tags){
foreach( $tags as $tag ){
$type = $tag['type'];
$name = $tag['name'];
$post = trim(strtr((string) $_POST[$name], "\n", ""));
//nameで指定
switch($name){
case 'menu-name':
if($_POST[$name] == ""){
$result->invalidate( $name,'選択して下さい' );
}
break;
case 'checkbox-name':
if($_POST[$name] == ""){
$result->invalidate( $name,'チェックして下さい' );
}
break;
}
//typeで指定
switch($type){
case 'text':
case 'text*':
if($_POST[$name] == ""){
$result->invalidate( $name,'必須項目です。' );
}
break;
case 'tel':
case 'tel*':
if($_POST[$name] == ""){
$result->invalidate( $name,'電話番号を入力してください。' );
}
break;
}
}
return $result;
}
上記の基本の形からif文で細かいバリデーションの条件分けも可能です。
$result->invalidate()はエラーメッセージを返します。
注意点として、上記のメッセージを変更する際は、ContactForm7側の必須項目を指定する「*」は外した方が良いです。
環境によって必須を外さないと管理画面側の指定が優先されてエラーメッセージが出ないことがあります。
WordPressのおすすめ参考書
bookfan 1号店 楽天市場店
¥3,300 (2026/01/20 15:42時点 | 楽天市場調べ)

