![](/img/trans.png)
[英]How Can I Get the Current Logged-In User with WordPress SHORTINIT
[英]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.