如何在外部php文件中获取登录用户的当前Wordpress电子邮件地址



我有以下问题。我想将Wordpress环境加载到一个外部php文件中。我的所有工作目前都在本地主机上,我的php代码如下:

<?php
require("../../wp-blog-header.php");
$admin = do_shortcode("[su_user field='user_email']");
if ($admin === "admin@email.com") {
    // Do stuff here
}
else {
    echo "<h1>Forbidden.</h1>";
}

这在我的localhost中运行得很好,所以我认为当我将文件上传到服务器时,它也必须运行,因为文件存储在与本地相同的目录中,因此是../../wp-blog-header.php。遗憾的是,这不起作用。当I echo $admin;时,出现以下错误:

用户:用户ID不正确

我试着使用本地Wordpress功能,而不使用这样的快捷代码:

<?php global $user_email;
      get_currentuserinfo();
      echo $user_email;
?>

这也不起作用。有没有更有效的方法将Wordpress环境加载到外部php文件中?对这里发生的事情有什么建议吗?它不一定是一封电子邮件,也可以是用户id,我尝试过并给了我0。

我忘了提一下,php文件加载,与错误一起返回Forbidden。这让我相信文件require("../../wp-blog-header.php")实际上正在加载,因为当我更改目录时,我直接得到一个错误,即文件现在正在工作/可用。

我在一个返回登录用户电子邮件地址的新页面中测试了这个短代码,它的工作原理与此相同。


更新

我的根是:

/var/www/vhosts/test-website.com/httpdocs/

我也用require("/var/www/vhosts/test-website.com/httpdocs/wp-blog-header.php")进行了测试。结果还是一样。奇怪的是,如果我在这行下面添加wp_head(),就会加载头。我重新表述我的问题:

如何在外部php文件中获取登录用户的当前电子邮件地址

如果您的文件与Wordpress实例是同一文件夹根目录。只需使用以下代码:

<?php
define( 'ROOT_PATH', dirname(__FILE__) );
require(ROOT_PATH . "/wp-blog-header.php");

//你的东西

相关内容

最新更新