簡體   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