Contact Form7自定义空字段错误消息失效问题求助
Contact Form7 空字段自定义错误消息失效原因及解决办法
核心原因
Contact Form7 对标记为必填的字段(字段名带*,比如[text* your-name])有内置优先验证机制:当字段为空时,系统会直接触发内置的必填错误提示,不会执行你后续添加的自定义空字段验证逻辑。这就是为什么你检查非空或特定字符的自定义验证能生效,但空字段验证被系统默认消息覆盖的原因。
解决办法
方案1:取消内置必填验证,完全用自定义逻辑控制
把字段的*去掉,比如将[text* your-name]改成[text your-name],然后保留你的自定义空字段验证代码(检查空字符串或empty()),此时系统不会触发内置验证,自定义错误消息就能正常显示。
方案2:替换系统默认的必填错误消息
如果你需要保留字段的必填标记(带*),可以用CF7的过滤器直接替换默认错误文本,无需自己写空字段检查:
add_filter( 'wpcf7_validation_error_message', 'custom_required_error_message', 10, 2 ); function custom_required_error_message( $message, $field ) { if ( 'your-name' == $field->name && 'invalid_required' == $field->error->code ) { return '请输入您的姓名(自定义必填错误消息)'; } return $message; }
额外说明
当你验证非空字段或特定字符时,因为没有触发内置的必填检查条件(字段不为空),所以自定义验证逻辑会正常执行,这就是这类场景能生效的原因。
内容的提问来源于stack exchange,提问作者GrimesWeb
相关产品推荐
相关产品推荐

