函数文档

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_user filter.

Return

int|false User ID if validated, false otherwise. If a user ID from an earlier filter callback is received, that value is returned.

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.