Problema con wp_get_current_user in WordPress 3.3.1

3 giu 2012, 01:40:56
Visualizzazioni: 15.8K
Voti: 1

Stavo provando questo codice per ottenere le informazioni dell'utente corrente, ma non mostra nulla. La mia versione di WordPress è la 3.3.1

<?php
    wp_get_current_user();
    /**
     * @example Utilizzo corretto: $current_user = wp_get_current_user();
     * if ( !($current_user instanceof WP_User) )
     *     return;
     */
    echo 'Username: ' . $current_user->user_login . '<br />';
    echo 'Email utente: ' . $current_user->user_email . '<br />';
    echo 'Nome utente: ' . $current_user->user_firstname . '<br />';
    echo 'Cognome utente: ' . $current_user->user_lastname . '<br />';
    echo 'Nome visualizzato: ' . $current_user->display_name . '<br />';
    echo 'ID utente: ' . $current_user->ID . '<br />';
?> 

L'output è:

Username:

Email utente:

Nome utente:

Cognome utente:

Nome visualizzato:

ID utente:

0
Tutte le risposte alla domanda 3
0

Hai provato a utilizzare l'alternativa "Utilizzo sicuro" indicata nella sezione commentata?

Onestamente non ho alcuna esperienza con wp_get_current_user(), poiché non l'ho mai utilizzato, ma in ogni caso, questo dovrebbe funzionare:

global $current_user;

echo 'Username: ' . $current_user->user_login . '<br />';
echo 'Email utente: ' . $current_user->user_email . '<br />';
echo 'Nome utente: ' . $current_user->user_firstname . '<br />';
echo 'Cognome utente: ' . $current_user->user_lastname . '<br />';
echo 'Nome visualizzato: ' . $current_user->display_name . '<br />';
echo 'ID utente: ' . $current_user->ID;

wp_get_current_user() dovrebbe fare la stessa cosa, poiché non è altro che un wrapper per le prime due righe sopra indicate, tuttavia, il codice sopra deve funzionare.

3 giu 2012 03:41:10
0

Prima di Wordpress 4.5 get_currentuserinfo() era un'opzione accettabile, ma ora è deprecata in favore di wp_get_current_user().

Puoi impostare wp_get_current_user() come variabile per accedervi facilmente nella tua funzione o pagina:

$current_user = wp_get_current_user();

Esempio:

if ( is_user_logged_in() ) {

    $current_user = wp_get_current_user();

    echo 'Username: ' . $current_user->user_login . '<br />';
    echo 'Email utente: ' . $current_user->user_email . '<br />';
    echo 'Nome utente: ' . $current_user->user_firstname . '<br />';
    echo 'Cognome utente: ' . $current_user->user_lastname . '<br />';
    echo 'Nome visualizzato: ' . $current_user->display_name . '<br />';
    echo 'ID utente: '. $current_user->ID . '<br />';
    echo 'Avatar utente: ' . get_avatar( $current_user->ID, 64 ) . '<br />';

} else {

    echo 'Utente non loggato.';

}

Inoltre, è importante assicurarsi che tutto questo venga eseguito dopo init per evitare output vuoti.

27 gen 2016 09:27:59
2

Ecco come puoi ottenere l'utente corrente:

global $current_user;
$current_user = wp_get_current_user();

Dopodiché, puoi utilizzare $current_user->ID dove vuoi.

Esempio:

if ( is_user_logged_in() ) {
    $current_user = wp_get_current_user();
    echo 'Username: ' . $current_user->user_login . '--';
    echo 'Email utente: ' . $current_user->user_email . '--';
    echo 'Nome utente: ' . $current_user->user_firstname . '--';
    echo 'Cognome utente: ' . $current_user->user_lastname . '--';
    echo 'Nome visualizzato: ' . $current_user->display_name . '--';
    echo 'ID utente: '. $current_user->ID . '--';
} else {
    echo 'Utente non loggato.';
}
27 gen 2016 06:18:23
Commenti

Perché hai bisogno/utilizzi il global?

Mark Kaplun Mark Kaplun
27 gen 2016 06:32:57

Mark, ho appena aggiornato la risposta, ma per rispondere alla tua domanda, il global non è necessario poiché questa è la ragione principale per usare wp_get_current_user() (clicca sul link per vedere dove la funzione accede al global se sei curioso di capire come funziona).

Bryan Willis Bryan Willis
27 gen 2016 07:52:49