我有一個wordpress插件中包含的整個網站。我一直試圖擺脫WordPress的,但我仍然依靠它來管理用戶。我需要訪問當前登錄用戶的數據,特別是他們的ID。在發佈請求中訪問已登錄的用戶數據?
當試圖訪問某些地方的數據我一直得到沒有用戶對象:
object(WP_User)#1033 (7) {
["data"]=>
object(stdClass)#1032 (0) {
}
["ID"]=>
int(0)
....
最後,它似乎歸結爲這一點。我想在控制器由我纖細的路由器叫了這樣的數據:
$this->get('/assignments', function(Request $req, Response $res, array $args){
require_once $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php';
$ch_user = wp_get_current_user();
var_dump($ch_user);die();
}
和:
$this->post('/userdata', function(Request $req, Response $res, array $args){
require_once $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php';
$ch_user = wp_get_current_user();
var_dump($ch_user);die();
}
這兩種途徑都在同一組,彼此分開行。 第一個返回正確填充的用戶對象,第二個返回ID爲0的空對象。兩者之間唯一的區別是一個是獲取請求,另一個是發佈請求。
我不是新聞專家,我對此完全感到困惑。
編輯:
我發現類似的問題得不到解決:
WordPress Ajax Call -- WordPress User ID
Wordpress REST API Retrurning Currnet User ID as 0
是的,你是對的,登錄的cookie在get請求中正確,在post請求中爲null。這兩個操作在同一個地方以相同的方式完成,我只能認爲問題在於纖細。我正在尋找任何與苗條帖子丟棄cookie有關的事情,但我似乎無法找到解決方案:/ – SpeedOfRound
登錄的cookie可以直接由服務器刪除(過期),或者通過在客戶端運行的JavaScript代碼間接刪除瀏覽器。您可以檢查服務器是否使用瀏覽器的網絡工具直接刪除(過期)登錄的Cookie,並監控服務器發送的Cookie。服務器將通過過期來刪除cookie。在Chrome網絡工具上,服務器發送的Cookie稱爲響應Cookie。 – B68C
如果cookies被刪除了,會不會把我註銷?該cookie只在請求期間丟失。 – SpeedOfRound