全局$CURRENT_USER不是当前用户

时间:2013-10-29 作者:clockwiseq

我相信我对全局变量$current\\u user的确切含义有误解。我正在尝试使用add\\u filter(“内容”、“我的功能”)在页面上显示当前用户的电子邮件和姓名,如果两个用户同时单击该按钮,您将看到另一个用户的信息。我可以一遍又一遍地复制这个。我使用的代码如下:

function my_function($content){
    $current_user = wp_get_current_user();
    $content .= "User Email: " . $current_user->user_email;
    return $content;
}

add_filter(\'the_content\', \'my_function\');

// ALSO PRODUCES SAME RESULT:
function my_function2($content){
    get_currentuserinfo();
    global $current_user;
    $content .= "User Email: " . $current_user->user_email;
    return $content;
}
我做错了什么?我在init action中尝试过这个,结果也是一样的。

UPDATE:

我还想确保创建用户的方法也不会导致问题。我使用标准的WP登录,但我重定向到我的自定义注册页面,该页面要求提供基本信息,然后执行以下操作来创建用户。这有什么问题吗(或者它缺少了普通WordPress用户可能会有的东西?)

$userdata = array(
                    \'user_pass\'         => $password,
                    \'user_login\'        => $email_1,
                    \'user_nicename\'     => $nickname,
                    \'user_email\'        => $email_1,
                    \'display_name\'      => $nickname,
                    \'nickname\'          => $nickname,
                    \'first_name\'        => $first_name_1,
                    \'last_name\'         => $last_name_1,
                    \'description\'       => NULL,
                    \'rich_editing\'      => \'true\',
                    \'user_registered\'   => date("Y-m-d H:i:s"),
                    \'role\'              => \'ssm_user\'
                );

$user_id = wp_insert_user($userdata);
$user = new WP_User( $user_id );

1 个回复
最合适的回答,由SO网友:clockwiseq 整理而成

在回答我自己的问题之前,我想在开场白中对你提出的所有意见和建议表示非常当之无愧的感谢。这让我找到了问题的根源@toscho,是你的评论让我想到了禁用网站上激活的其他插件。这将问题缩小到我的插件(我认为是罪魁祸首),经过多次测试(在主机以外的各种服务器上),发现问题消失了。以下是解决方案(这也是@toscho提出的):

我联系了我的主机(SmarterASP.Net,顺便说一下,这是一群很棒的家伙),并解释了情况,他们说我的网站上启用了输出缓存选项。然后他们告诉我如何禁用它,瞧!Ghost登录问题已消失。

结束

相关推荐

Extend the wp_users table

我想延长wp_users 我的WordPress数据库中的表为什么?我希望人们在我的网站上唱歌时能增加更多关于自己的信息。我知道如何扩展它,但我担心当WordPress需要更新时wp_users 表,即我添加的列,将被删除。我这里有任何人在扩展wp_users 桌子更新WordPress版本时,是否会更新此表?