REGISTER_SETTINGS回调函数擦除数据

时间:2016-06-28 作者:JackTheKnife

我已使用回调函数注册了一个设置:

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; }
    }
}
验证工作正常,但当它失败时(空字段或无效的电子邮件地址),它会从该字段中删除数据。

有什么办法可以防止吗?

1 个回复
最合适的回答,由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; }
    }
}

相关推荐

Huge wp_options table

我有一个WP网站的问题。由于没有更多可用磁盘空间,网站崩溃。搜索时,我检测到wp\\U选项表大小为12GB,但大约只有1100行:有什么想法吗?提前感谢[UPDATE 1]如果我导出wp\\U选项表,拖放并导入,大小将减少到9,7mb:我没有机会用优化表OPTIMIZE TABLE wp_options 但如果再发生的话我会试试的[UPDATE 2]问题仍然存在。我试着OPTIMIZE TABLE wp_options;无结果: