$CURRENT_USER变量返回NULL

时间:2012-02-22 作者:CodingBear

我正在开发一个wp插件,我正在尝试获取当前用户。

如果返回时出错,print\\u r($current\\u user)将返回所需的信息。

但是插件被激活时没有出现错误,它返回NULL。

我试图包括一些wp核心文件,如wp load等,但这没有任何效果。

这是我的代码(没有错误):

class My_plugin_class{

    var $user;

    function __construct() 
    {
        global $current_user;

        //Set the current user
        $this->user = $current_user;

        print_r($this->user);

    }     
}
EDIT:刚刚将我的代码编辑为:

require_once(ABSPATH . \'/wp-includes/pluggable.php\');
global $current_user;
get_currentuserinfo();
函数get\\u currentuserinfo()现在执行print\\u r();难道不会停止吗?

EDIT:Fixed it myself.

2 个回复
SO网友:Chip Bennett

你需要全球化$current_user, 然后通过get_currentuserinfo(). 看见the Codex entry for get_currentuserinfo(). 在Codex示例用法中:

<?php
global $current_user;
get_currentuserinfo();
?>
因此,尝试相应地调整代码;e、 g.:

class My_plugin_class{

    var $user;

    function __construct() 
    {      
        //Set the current user
        global $current_user;
        get_currentuserinfo();
        $this->user = $current_user;

        print_r($this->user);

    }     
}

SO网友:Stephen Harris

您不必手动要求WP文件。您可能只是使用函数太早了,请尝试在上构造类init 或者让你的__construct 函数挂钩上的第二个函数init 处理当前用户的。

例如:

class My_plugin_class{

    var $user;

    function __construct() {      
        add_action(\'init\',array(__CLASS__,\'init\'));
    }     

    static function init(){
        //Set the current user
        global $current_user;
        get_currentuserinfo();
        $this->user = $current_user;
        print_r($this->user);
    }
}
My_plugin_class::__construct;
未测试

结束