web-dev-qa-db-fra.com

global $ current_user pas l'utilisateur actuel

Je crois que j'ai un malentendu sur ce qu'est exactement la variable globale $ current_user. J'essaie d'afficher l'adresse électronique et le nom de l'utilisateur actuel sur une page à l'aide de add_filter ('the_content', 'my_function') et si deux utilisateurs cliquent sur le bouton en même temps, vous verrez les informations d'un autre utilisateur. Je peux reproduire cela encore et encore. Le code que j'utilise est ci-dessous:

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;
}

Qu'est-ce que je fais mal? J'ai essayé cela en init action et les résultats sont les mêmes.

METTRE À JOUR:

Je veux également m'assurer que la méthode dans laquelle je crée un utilisateur n'est pas non plus à l'origine du problème. J'utilise le nom de connexion standard WP, mais je redirige vers ma page d'inscription personnalisée qui demande des informations de base, puis procède comme suit pour créer un utilisateur. Y at-il un problème avec cela (ou manque-t-il quelque chose qu'un utilisateur normal de WordPress aurait?):

$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
clockwiseq

Avant de répondre à ma propre question, je voudrais la précéder d’un merci très mérité pour tous vos commentaires et vos suggestions. Cela m'a conduit à la racine du problème. @toscho, c'est votre commentaire qui m'a fait penser à désactiver les autres plugins activés sur le site. Cela a réduit le problème à mon plugin (que je pensais être le coupable) et après plusieurs tests (sur différents serveurs en plus de mon hôte), a découvert que le problème avait disparu. Voici la solution (qui a également été suggérée par @toscho):

J'ai contacté mon hôte (SmarterASP.Net - un grand groupe de gars au fait) et expliqué la situation. Ils ont également déclaré qu'une option de mise en cache de la sortie était activée sur mon site. Ils ont ensuite procédé à me faire savoir comment le désactiver et le tour est joué! Le problème de connexion à Ghost a disparu.

0
clockwiseq