2010-07-31 67 views
3

我有我的wordpress目錄內的一個目錄對一些模板應用WordPress的獲取當前用戶

apacheWWW/wordpress/jtpc 

在我的應用我想WordPress的當前用戶ID

我能夠做到這一點的一個網頁,但在其他的我得到一個錯誤

這是我在做什麼,以獲取用戶ID:

require_once('/../../wp-load.php'); 
global $current_user; 
get_currentuserinfo(); 
$user_id = $current_user->ID; 

,但我得到這條線上的錯誤

require_once('/../../wp-load.php'); 

錯誤說

File does not exist: D:/programming/apacheWWW/wordpress/jtpc/ajaxHandlers/wp-admin, referrer: http://localhost/wordpress/?page_id=23 

,他希望與可溼性粉劑管理員什麼劑量, ,爲什麼他是在錯誤的目錄尋找它, 它的假設是根據

D:/programming/apacheWWW/wordpress/ 

它的工作的一個頁面,(我上傳文件,並創建該用戶ID的目錄)

但對於其他網頁我發送一個Ajax請求的用戶請求 刪除文件,所以我需要ID一遍,但他拋出錯誤

回答

0

你可能想嘗試以下兩行之一:

require_once STYLESHEETPATH . '/wp-load.php'; 

require_once TEMPLATEPATH . '/wp-load.php'; 

還有就是STYLESHEETPATH常數和TEMPLATEPATH常數之間的輕微差異。如果您正在開發一個子主題,則STYLESHEETPATH將成爲子主題路徑,而TEMPLATEPATH將成爲父主題路徑。

+0

我收到錯誤此 PHP注意:使用未定義的常量STYLESHEETPATH的 - 在d假定 'STYLESHEETPATH':\\ \\程序\\ apacheWWW WordPress的\\ \\ jtpc \\ ajaxHandlers第22行addon_handler.php ,referer:http:// localhost/wordpress /?page_id = 23 AND [error] [client 127.0.0.1] PHP注意:使用未定義的常量TEMPLATEPATH - 在D:\\ programming \\中假定爲'TEMPLATEPATH' apacheWWW \ wordpress \\ jtpc \\ ajaxHandlers \\ addon_handler.php在第22行,referer:http:// localhost/wordpress /?page_id = 23 – shay 2010-08-01 09:51:29

+1

您的設置有問題。你可能想在你的電腦上安裝XAMPP並嘗試使用WordPress。 – Box 2010-08-01 11:09:08

0

這就是你如何獲得當前用戶:

global $current_user; 
$current_user = wp_get_current_user(); 

之後,你可以使用你想要$current_user->ID

更多信息:

+0

也在這裏出錯 PHP致命錯誤:調用未定義的函數wp_get_current_user()在D:\\編程\\ apacheWWW \\ wordpress \\ jtpc \\ ajaxHandlers \\ addon_handler.php在24行,referer:http:// localhost/wordpress /?page_id = 23 – shay 2010-08-01 10:04:57

3

確定了我的工作,我把

require_once('/../../wp-load.php'); 

在 頁面的頂部,而不是在函數內部

+0

你現在可以接受你自己的答案。 – 2013-11-28 15:02:43

2

我的問題是我爲我的插件的管理員設置了一個獨立的ajax控制器。 事後看來,我希望我沒有,因爲現在我需要$ current_user-> ID在一個特定的方法。

使用下面的代碼給我未定義功能錯誤:

global $current_user; 
get_currentuserinfo(); 

一樣,當我用這個:

$current_user = wp_get_current_user(); 

我用grep來跟蹤麪條函數調用,並且能在我的基本控制器的ajax_request方法中使用以下包含鏈獲得穩定:

include APP_ROOT.'wp-includes'.DS.'meta.php'; 
include APP_ROOT.'wp-includes'.DS.'plugin.php'; 
include APP_ROOT.'wp-includes'.DS.'user.php'; 
include APP_ROOT.'wp-includes'.DS.'capabilities.php'; 
include APP_ROOT.'wp-includes'.DS.'load.php'; 
include APP_ROOT.'wp-includes'.DS.'functions.php'; 
include APP_ROOT.'wp-includes'.DS.'pluggable.php'; 

(我已經定義了我自己的APP_ROOT,這是包含整個應用程序的基礎的路徑。)

這消除了我的錯誤,但我仍然獲得用戶ID爲0,並且數據爲NULL,解決不了我的問題。

當然有更好的方法來做到這一點。有沒有人破譯cookie或會話變量的直接訪問?

任何和所有的建議將受到歡迎。我知道我要求wordpress像正常的OOP/MVC代碼一樣工作...

另外,我已經部署了一個CodeIgniter前端,並且我僅將WordPress用於後端。如果您被迫使用WordPress,我強烈建議您提供最終的靈活性。前端鉤子是一種痛苦,真是一種「哈克」。這裏就是我計上心來:

http://jidd.jimisaacs.com/post/wordigniter-wordpress-codeigniter/

因此,如果任何人有關於任何問題,我打賭我能幫忙。

此致敬禮,快樂編碼。