将误差数据压入自变量是一种浪费。您已经在WP_Error
对象,如果您愿意,可以使用纯PHP对象和数组语法来获取它,但让我们看看该对象提供的检索数据的方法(使用从Codex复制的注释):
$errors = new WP_Error;
$errors -> add( \'login_error\', __( \'Please type your username\' ) );
$errors -> add( \'email_error\', __( \'Please type your e-mail address.\' ) );
var_dump($errors->get_error_codes());
// Retrieve all error codes. Access public, returns array List of error codes, if available.
var_dump($errors->get_error_code());
// Retrieve first error code available. Access public, returns string, int or Empty if there is no error codes
var_dump($errors->get_error_messages(\'login_error\'));
// Retrieve all error messages or error messages matching code. Access public, returns an array of error strings on success, or empty array on failure (if using code parameter)
var_dump($errors->get_error_message(\'login_error\'));
// Get single error message. This will get the first message available for the code. If no code is given then the first code available will be used. Returns an error string.
var_dump($errors->get_error_data(\'login_error\'));
// Retrieve error data for error code. Returns mixed or null, if no errors.
如果查看该输出,您应该立即发现几个选项:
array(2) {
[0]=>
string(11) "login_error"
[1]=>
string(11) "email_error"
}
string(11) "login_error"
array(1) {
[0]=>
string(25) "Please type your username"
}
string(25) "Please type your username"
NULL
例如,在用户名字段附近的表单中。。。
// username field
echo implode(\', \',$errors->get_error_messages(\'login_error\')); // empty string if no error; aka prints nothing if no error
我不确定您的完整实现是什么样子的。你几乎肯定需要更复杂的东西,但这就是想法。