我目前正在尝试在我的网站上写一些不属于wordpress站点的页面,但我希望能够使用wordpress用户。我使用以下代码实现了这一点
require_once("../../../wp-load.php");
$current_user = wp_get_current_user();现在,我可以将$current_user变量用于我需要的所有内容。但是,因为我包含了wp-load.php文件,所以有很多我实际上不需要的开销。
我的问题是,我如何才能在不包含wp-load的情况下获得当前的wordpress用户?
我不介意自己包含一些额外的文件,但我真的不需要也不想在每次调用这个页面时设置整个wp环境,这样我才能获得用户。
发布于 2012-02-08 16:14:15
你在那些页面上做什么?我之所以这样问,是因为如果你想通过ajax发送一些帖子,你应该检查一下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个参数(在Wordpress 3.3中;在早期版本中,它只会得到用户名)。
现在,当用户登录时,我们可以访问wp用户对象。也许有一种方法可以将这些数据( POST请求)传递给您的应用程序,并将其存储在会话中。
不过,我不确定这是否可能。
https://stackoverflow.com/questions/9183426
复制相似问题