我目前正在尝试将几页写入我的网站,这些页面不属于wordpress网站,但我希望能够使用wordpress用户。我使用以下代码
require_once("../../../wp-load.php");
$current_user = wp_get_current_user();
现在我可以将$ current_user变量用于我需要的所有内容。但是因为我包含了wp-load.php文件,所以我真的不需要很多开销。
我的问题是如何在不包含wp-load的情况下获取当前的wordpress用户?
我不介意自己必须包含一些额外的文件,但我真的不需要或者希望每次调用此页面时都要设置整个wp环境,以便我可以获得用户。
答案 0 :(得分: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个参数(在Wordpress 3.3中;在早期版本中,它只获取用户名)。
现在,当用户登录时,我们可以访问wp用户对象。也许有一种方法可以将这些数据(POST请求)传递给您的应用程序并将其存储在会话中。
我不确定它是否可能。