rest_application_password_check_errors()
云策文档标注
概述
rest_application_password_check_errors() 函数用于在使用应用程序密码认证时检查错误。它处理来自其他认证处理器的结果,并返回相应的错误或成功状态。
关键要点
- 参数 $result 可以是 WP_Error、null 或 true,用于传递其他认证处理器的错误或指示是否处理。
- 返回值可以是 WP_Error(如果应用程序密码无效)、$result 或 true,具体取决于全局变量 $wp_rest_application_password_status 的状态。
- 函数内部检查全局变量 $wp_rest_application_password_status,如果是 WP_Error 则添加状态码并返回,如果是 WP_User 则返回 true,否则返回 $result。
代码示例
function rest_application_password_check_errors( $result ) {
global $wp_rest_application_password_status;
if ( ! empty( $result ) ) {
return $result;
}
if ( is_wp_error( $wp_rest_application_password_status ) ) {
$data = $wp_rest_application_password_status->get_error_data();
if ( ! isset( $data['status'] ) ) {
$data['status'] = 401;
}
$wp_rest_application_password_status->add_data( $data );
return $wp_rest_application_password_status;
}
if ( $wp_rest_application_password_status instanceof WP_User ) {
return true;
}
return $result;
}注意事项
- 此函数自 WordPress 5.6.0 版本引入,用于 REST API 的应用程序密码认证流程。
- 依赖全局变量 $wp_rest_application_password_status,需确保在调用前已正确设置。
- 使用 is_wp_error() 检查错误,并自动为 WP_Error 添加默认状态码 401。
原文内容
Checks for errors when using application password-based authentication.
Parameters
$resultWP_Error|null|truerequired-
Error from another authentication handler, null if we should handle it, or another value if not.
Source
function rest_application_password_check_errors( $result ) {
global $wp_rest_application_password_status;
if ( ! empty( $result ) ) {
return $result;
}
if ( is_wp_error( $wp_rest_application_password_status ) ) {
$data = $wp_rest_application_password_status->get_error_data();
if ( ! isset( $data['status'] ) ) {
$data['status'] = 401;
}
$wp_rest_application_password_status->add_data( $data );
return $wp_rest_application_password_status;
}
if ( $wp_rest_application_password_status instanceof WP_User ) {
return true;
}
return $result;
}
Changelog
| Version | Description |
|---|---|
| 5.6.0 | Introduced. |