wp_validate_logged_in_cookie()
云策文档标注
概述
wp_validate_logged_in_cookie() 是一个 WordPress 函数,用于验证已登录用户的 cookie。它作为 'determine_current_user' 过滤器的回调,在之前的身份验证 cookie 无法验证或解析时检查登录 cookie。
关键要点
- 函数类型:回调函数,用于 'determine_current_user' 过滤器,而非直接 API 调用。
- 参数:$user_id(int|false),必需,从 determine_current_user 过滤器接收的用户 ID 或 false。
- 返回值:int|false,验证成功返回用户 ID,否则返回 false;如果接收到早期过滤器回调的用户 ID,则直接返回该值。
- 功能逻辑:如果 $user_id 已存在则直接返回;否则,检查是否为博客或网络管理界面,或登录 cookie 为空,返回 false;最后调用 wp_validate_auth_cookie() 验证登录 cookie。
- 相关函数:wp_validate_auth_cookie()、is_blog_admin()、is_network_admin()。
- 版本历史:自 WordPress 3.9.0 引入。
代码示例
function wp_validate_logged_in_cookie( $user_id ) {
if ( $user_id ) {
return $user_id;
}
if ( is_blog_admin() || is_network_admin() || empty( $_COOKIE[ LOGGED_IN_COOKIE ] ) ) {
return false;
}
return wp_validate_auth_cookie( $_COOKIE[ LOGGED_IN_COOKIE ], 'logged_in' );
}
原文内容
Validates the logged-in cookie.
Description
Checks the logged-in cookie if the previous auth cookie could not be validated and parsed.
This is a callback for the ‘determine_current_user’ filter, rather than API.
Parameters
$user_idint|falserequired-
The user ID (or false) as received from the
determine_current_userfilter.
Source
function wp_validate_logged_in_cookie( $user_id ) {
if ( $user_id ) {
return $user_id;
}
if ( is_blog_admin() || is_network_admin() || empty( $_COOKIE[ LOGGED_IN_COOKIE ] ) ) {
return false;
}
return wp_validate_auth_cookie( $_COOKIE[ LOGGED_IN_COOKIE ], 'logged_in' );
}
Changelog
| Version | Description |
|---|---|
| 3.9.0 | Introduced. |