![](/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.