我无法从加载“子类”示例的主类中获取用户变量:
//PLUGIN FILE
class father{
var $user;
function __construct() {
add_action(\'plugins_loaded\', array(&$this, \'loaded\'));
}
function plugins_loaded(){
global $wp_get_current_user;
$this->user = wp_get_current_user();
}
}
$plugin = new parent();
这就是插件文件。
//EXTEND CLASS
class child extends father{
function __construct(){
parent::__construct();
}
function user_id(){
echo $this->user->ID;
}
}
那是扩展类。
//CONFIG FILE (DISPLAYED IN ADMIN PANEL)
$child = new child();
$user_id = $child->user->id;
$child->user_id();
这就是配置页面。
我无法在扩展类中获取用户id,但在父类中可以。
为什么以及如何解决?
最合适的回答,由SO网友:mfields 整理而成
This works for me:
class father {
var $user;
function __construct() {
add_action( \'init\', array( &$this, \'set_user\' ) );
}
function set_user() {
$this->user = wp_get_current_user();
}
}
class child extends father {
function __construct() {
parent::__construct();
}
function user_id(){
return $this->user->ID;
}
}
$father = new father();
$child = new child();
add_action( \'admin_notices\', \'test_stuff\' );
function test_stuff() {
global $child;
print \'<pre>Child: \' . print_r( $child->user_id(), true ) . \'</pre>\';
}