2012-02-07 49 views
1

我目前正在嘗試寫幾頁到我的網站,不是WordPress的網站的一部分,但我想能夠使用WordPress的用戶。我有這個工作使用下面的代碼wordpress得到當前用戶沒有wp-load.php

require_once("../../../wp-load.php"); 
$current_user = wp_get_current_user(); 

現在我可以使用$ CURRENT_USER變量我需要的一切。但是因爲我包含了wp-load.php文件,所以我真的不需要很多開銷。

我的問題是我怎樣才能得到當前WordPress的用戶,而不包括wp負載?

我不介意自己必須包含一些額外的文件,但我真的不需要或不希望整個wp環境在每次調用此頁面時進行設置,以便我可以獲取用戶。

+0

你可以試試這個https://wordpress.org/support/topic/how-to-get-current-user-id-outside-of-wp-blog#post-820219 – 2016-07-01 05:18:56

回答

0

你在這些網頁上做什麼?我在問,因爲如果你想通過ajax發送一些POST,你應該檢查this

如果您不使用ajax,但您只需要一些可以訪問Wordpress功能的頁面,那麼您必須包含wp-load,因爲此文件正在加載Wordpress。

我建議在你的主題文件夾中創建一個名爲page-custom-name.php的文件,併發佈一個精確標題爲「Custom-name」的空白頁面。現在,當您訪問www.yoursite/custom-name時,您將看到該頁面,並且您可以獲取當前用戶信息或訪問其他Wordpress功能。

後來編輯:

這種想法的部分解決方案:關於使用鉤子如何?

在你的functions.php把這幾行:

add_action('wp_login', 'aboutuser'); 

function aboutuser($username, $user) 
{ 
    $userObject = $user; 

    //find a solution to send this data to your url of your application 
} 

基本上,當用戶在WordPress的是記錄,則執行aboutuser()函數,這是獲得2個PARAMS(在WordPress的3.3,在早期版本它只獲取用戶名)。

現在,當用戶登錄時,我們有權訪問wp用戶對象。也許有一種方法將這些數據(POST請求)傳遞給您的應用程序並將其存儲在會話中。

雖然我不確定它是否可行。

+0

這實際上是一個工作項目。我們有一個獨立的應用程序已經在wordpress之外設置。我加入的功能,應用程序創建的帖子到WordPress的系統,所以我需要確保訪問者登錄到WordPress的系統,他們被允許做的職位。對於實際創建後它是好的,我包括WP-load.php因爲我需要能夠調用函數來創建文章和添加註釋的頁面。然而,在主頁面上加載整個wp環境只是爲了檢查訪問者是否登錄wordpress是矯枉過正。 – 2012-02-08 17:34:14

+0

那麼,我不太清楚包括wp-load,或者像我說的設置一個頁面之間的差異。但是,包括wp-load並不是一個好主意http://ottopress.com/2010/dont-include-wp-load-please/ – zuzuleinen 2012-02-09 08:08:04

+0

感謝您的文章鏈接,但它主要是討論插件和它指出的主要問題是wp envirnoment會被加載兩次。由於應用程序沒有在wp中運行,所以我不這樣做。我正在尋找解決方案的主要原因是包括wp-load。PHP導致我們應用程序中的某些功能失敗。我從那以後找到了解決這個問題的辦法(儘管我仍然不完全明白爲什麼存在這個問題)。但仍然會很高興知道如何獲得用戶信息。 – 2012-02-09 15:47:48