正如其他人所提到的:如果过早调用函数,它将返回值0
检查是否“太早”的一个好方法是进行这种检查:
// Do NOT check for action \'set_current_user\', but for \'init\'!!
if ( ! did_action( \'init\' ) ) {
_doing_it_wrong( __FUNCTION__, \'get_current_user_id() called before the init hook\', null );
}
$user_id = get_current_user_id();
The reason why we do not use did_action(\'set_current_user\')
is:
如果调用了其他代码/插件
get_current_user_id()
太早了,它会触发钩子
set_current_user
运行。然而,目前的用户数据在这一点上是不正确的,因此依赖这个动作挂钩不是一个好主意-只有当
init
执行后,我们可以确保有正确的用户!