自定义文件中的WP_GET_CURRENT_USER返回0

时间:2019-01-27 作者:AnG251

我需要访问自定义PHP文件中登录的用户数据,通过include在WP页面中调用该文件。

包含文件为:

require($_SERVER[\'DOCUMENT_ROOT\'].\'/wp-config.php\'); 
require($_SERVER[\'DOCUMENT_ROOT\'].\'/wp-load.php\'); 
$current_user = wp_get_current_user(); 
var_dump($current_user->ID);
var_dump($current_user->display_name);
输出:int(0)bool(false)int(0)bool(false)

然而在同一页中,我还调用了在函数中输入的函数。php:

$current_user = wp_get_current_user();
var_dump($current_user->ID);
var_dump($current_user->display_name);
这个输出:int(1)string(10)“antoine251”

在我看来,从外部php文件调用的WP函数不起作用。

我错过了什么?(甚至没有安装pluggin,Twenty199主题的结果与我的自定义主题相同)

提前感谢您的帮助!

1 个回复
SO网友:Krzysiek Dróżdż

您的代码存在的问题是,您希望让当前用户尽早使用。

wp_get_current_user 正在使用全局current_user 变量

但是这个变量不是从一开始就设置的。

如果你想直接在脚本文件中使用这个函数,那就太早了。

你应该等待init 获取当前用户的操作。

require($_SERVER[\'DOCUMENT_ROOT\'].\'/wp-config.php\'); 
require($_SERVER[\'DOCUMENT_ROOT\'].\'/wp-load.php\'); 

add_action( \'init\', function() {
    $current_user = wp_get_current_user(); 
    var_dump($current_user->ID);
    var_dump($current_user->display_name);
});

相关推荐