WordPress具有全局函数,例如wp_get_current_user(),我可以在类方法中调用,它们位于\wp_get_current_user
的不同名称空间下。但是我无法在类构造函数中将其设置为变量(类$user = \wp_get_current_user
等类属性)。我猜这里有一条我不知道的PHP规则?
例如,
namespace App;
class User{
//this doesn't work **I found that this is because we have to initialize the variables with constants (expressions aren't allowed**
$user = \wp_get_current_user();
function __construct(){
//this also doesn't work
$this->user = \wp_get_current_user();
$this->init();
}
function init(){
//this works
$this->user = \wp_get_current_user();
}
}
答案 0 :(得分:0)
wp_get_current_user()是/wp-includes/pluggable.php中的可插入函数,您可以将其用作函数调用,如下所示:
<?php $current_user = wp_get_current_user(); ?>
答案 1 :(得分:0)
也许你可以从全局上下文中调用wp_get_current_user()并将其值作为参数传递给User类构造函数。然后,您应该能够从班级中访问当前用户
答案 2 :(得分:0)
因此无法在插件构造函数中调用此方法的原因是因为在pluggable.php文件中定义了wp_get_current_user()(如果我们选择,那里的函数可以被覆盖),在所有插件之后加载。因此,解决方案是在注册到WordPress挂钩(add_action,..filter)的类方法中调用此函数。