繁体   English   中英

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

[英]How can I get the current Wordpress e-mail address of a logged-in user in an external php file?

我有以下问题。 我想将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>";

}

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

用户:用户标识不正确

我尝试使用本机Wordpress函数而不使用这样的短代码:

<?php global $user_email;
      get_currentuserinfo();

      echo $user_email;
?>

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

我忘了提,php文件加载并与错误一起回显“ 禁止 ”。 这使我相信,实际上正在加载文件require("../../wp-blog-header.php")因为当我更改目录时,我直接得到一个错误,表明该文件现在可以工作/可用。

简码可以正常工作,因为我已经在新的Page中对其进行了测试,返回了已登录用户的电子邮件地址。


更新

我的根源是:

/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");

//你的东西

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM