wordpress获得当前用户

时间:2010-07-31 23:26:57

标签: php 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

他想用wp-admin的剂量, 为什么他在错误的目录中寻找它, 它假设在

之下
   D:/programming/apacheWWW/wordpress/

它适用于一个页面,(我正在上传文件并为此用户ID创建目录)

但是对于另一个页面,我发送ajax请求以按用户请求删除文件 所以我需要再次识别,但在那里他抛出错误

4 个答案:

答案 0 :(得分:3)

好的,我工作了,我把

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

位于页面顶部 而不是在函数

答案 1 :(得分:2)

我的问题是我为我的插件管理员设置了一个独立的ajax控制器。 事后看来,我希望我没有,因为现在我需要特定方法的$ current_user-> ID。

使用以下代码给出了未定义的函数错误:

global $current_user;
get_currentuserinfo();

当我使用它时:

$current_user = wp_get_current_user();

我已经使用GREP来跟踪spaghetti函数调用,并且能够在我的基本控制器的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,我强烈建议您获得最大的灵活性。前端挂钩很痛苦,真的很“hacky”。这就是我的想法:

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

所以,如果有人对此有任何疑问,我打赌我可以提供帮助。

最好的问候,快乐的编码。

答案 2 :(得分:0)

您可能想尝试以下两行之一:

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

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

STYLESHEETPATH常量和TEMPLATEPATH常量之间存在细微差别。如果您正在开发子主题,则STYLESHEETPATH将是子主题路径,而TEMPLATEPATH将是父主题路径。

答案 3 :(得分:0)

这是您获得当前用户的方式:

global $current_user;
$current_user = wp_get_current_user();

之后,您可以在任意位置使用$current_user->ID

更多信息: