在进行WP二次开发的时候,经常要对一些表单参数进行解析,然后将结果反馈给用户。Wordpress提供了原生的类,可以很方便的处理错误信息。
初始化
初始化的方式很简单:
<?php
$error = new WP_Error;
new WP_Error( $code, $message, $data );
?>
有时候系统已经提供了一个全局函数,比如$WP_Error或$errors,只需要global一下,就不需要另外实例化一个了。
添加错误
<?php
$errors->add($code, $message, $data);
$errors->add_data($data, $code); //给指定的错误代码添加数据
?>
是的,就是这么简单。
输出错误信息
判断是否是WP_Error对象
<?php
if ( is_wp_error( $errors ) ) {}
?>
获取错误代码Code
<?php
$errors->get_error_codes(); // 获取所有错误代码,返回错误代码的数组列表
$errors->get_error_code(); // 获取第一个错误代码
?>
获取错误信息Message
<?php
$errors->get_error_messages($code); //获取所有的错误信息,或匹配错误代码的信息,成功则返回错误信息字符串的数组,失败则返回空数组
$errors->get_error_message($code) //获取第一个错误信息,或者匹配错误代码的信息。
获取错误数据Data
<?php
$errors->get_error_data($code) //获取指定错误代码的数据。
删除错误
<?php
$errors->remove($code);
完整的实例
<?php
$email = 'name@email.com';
$errors = new WP_Error;
if ( !filter_var($email, FILTER_VALIDATE_EMAIL) ) {
$errors->add('email', '请输入正确的邮箱地址', $email);
}
$error_messages = is_wp_error($errors) ? $errors->get_error_message() : '';
if ( !empty($error_messages) ) {
echo json_encode($error_messages);
} else {
echo '无错误';
}