我已使用回调函数注册了一个设置:
register_setting( \'my-plugin-settings-group\', \'notification_email\', \'email_validation\' )
回调函数如下所示:
function email_validation($data) {
if (null == $data)
{
add_settings_error(
\'requiredTextFieldEmpty\',
\'empty\',
\'Notification Email cannot be empty\',
\'error\'
);
}
else {
if (!is_email($data)){
add_settings_error(
\'requiredTextFieldEmpty\',
\'empty\',
\'Notification Email is not valid email address\',
\'error\'
);
}
else { return $data; }
}
}
验证工作正常,但当它失败时(空字段或无效的电子邮件地址),它会从该字段中删除数据。
有什么办法可以防止吗?
最合适的回答,由SO网友:mmm 整理而成
如果值错误,函数必须返回原始值,然后尝试以下操作:
function email_validation($data, $option, $original_value) {
if (null == $data)
{
add_settings_error(
\'requiredTextFieldEmpty\',
\'empty\',
\'Notification Email cannot be empty\',
\'error\'
);
return $original_value;
}
else {
if (!is_email($data)){
add_settings_error(
\'requiredTextFieldEmpty\',
\'empty\',
\'Notification Email is not valid email address\',
\'error\'
);
return $original_value;
}
else { return $data; }
}
}