WordPress - 检查用户是否从外部 PHP 文件登录

FDI*_*FDI 5 php wordpress

我正在尝试检查 WordPress 用户是否已从外部 PHP 文件登录,这是我的代码

<?php 
/*Load up wordpress externally*/
define( 'WP_USE_THEMES', false );
define( 'COOKIE_DOMAIN', false );
define( 'DISABLE_WP_CRON', true );
require('../../trading/wp-load.php');

if ( is_user_logged_in() ){
    $user =  wp_get_current_user();
    print_r($user);

}else{
    echo 'logged out';
}
Run Code Online (Sandbox Code Playgroud)

?>

即使用户已登录,我总是收到“已注销”消息。知道如何解决此问题吗?

谢谢

小智 1

我认为你的代码是正确的,所以我测试了它(仅更改行“require('../../trading/wp-load.php');”以匹配我的安装)并且它按预期工作,所以代码本身是正确,但其他地方是错误的。

为了让 WordPress(在标准配置中)知道用户已登录,它必须接收 cookie。你可以添加一个

var_dump( $_COOKIE );
Run Code Online (Sandbox Code Playgroud)

添加到您的脚本并验证是否已收到“wordpress_logged_in_ ...”之类的 cookie。

WordPress 有挂钩,因此可以自定义用户验证。当然,在定制安装中,上述情况可能不正确。