Recentemente vi abbiamo mostrato come creare un’esperienza personalizzata per i vostri utenti, permettendo loro di salvare i loro articoli preferiti in una libreria personalizzata. È possibile portare i risultati personalizzati a un altro livello, utilizzando il loro nome di battesimo in alcuni punti (ad esempio nello schermo di benvenuto). Fortunatamente, WordPress rende molto semplice ottenere le informazioni dell’utente connesso. In questo articolo vi mostreremo come recuperare le informazioni relative all’utente attualmente connesso.
Utilizzeremo la funzione get_currentuserinfo();. Questa funzione può essere utilizzata in qualsiasi punto del tema (header, footer, barra laterale, template della pagina ecc.). Affinché funzioni, l’utente deve essere connesso. Pertanto, sarà necessario utilizzare la dichiarazione condizionale is_user_logged_in(). Esempio di codice:
<?php if ( is_user_logged_in() ) { ?> <!-- text that logged in users will see --> <?php } else { ?> <!-- here is a paragraph that is shown to anyone not logged in --> <p>By <a href="<?php bloginfo('url'); ?>/wp-register.php">registering</a>, you can save your favorite posts for future reference.</p> <?php } ?>
Ora, per gli utenti che hanno effettuato il login, possiamo mostrare un messaggio personalizzato, ad esempio: “Ehi Syed, è tutto qui, proprio dove speravi che fosse”. Il codice precedente si trasformerà in qualcosa di simile:
<?php if ( is_user_logged_in() ) { ?> <!-- text that logged in users will see --> <?php global $current_user; get_currentuserinfo(); ?> <h1>Hi <?php echo $current_user->user_firstname; ?></h1> <p>Everything is here, right where you hoped it would be :)</p> <?php } else { ?> <!-- here is a paragraph that is shown to anyone not logged in --> <p>By <a href="<?php bloginfo('url'); ?>/wp-register.php">registering</a>, you can save your favorite posts for future reference.</p> <?php } ?>
Il codice magico che abbiamo aggiunto sopra è $current_user->user_firstname; il che funziona perché la chiamata a get_currentuserinfo() inserisce le informazioni dell’utente corrente in $current_user. Si può usare un metodo simile per ottenere altre informazioni su chi siamo, come l’accesso, l’ID utente, l’email, il sito web, ecc.
Ecco un esempio di utilizzo di tutte le informazioni:
<?php global $current_user; get_currentuserinfo(); echo 'Username: ' . $current_user->user_login . " "; echo 'User email: ' . $current_user->user_email . " "; echo 'User first name: ' . $current_user->user_firstname . " "; echo 'User last name: ' . $current_user->user_lastname . " "; echo 'User display name: ' . $current_user->display_name . " "; echo 'User ID: ' . $current_user->ID . " "; ?>
Spero che questo sia d’aiuto. Combinando questa funzione con la possibilità di aggiungere articoli preferiti, è possibile creare facilmente un’esperienza personalizzata.
Stef
You should update this. It’s outdated/deprecated.
WPBeginner Support
Thank you for your feedback and for letting us know about this article
Admin
Hash
How to display logged in user’s profile picture ?
S Meredith
Hi Syed,
Fantastic site.
It’s helped me a lot with understanding WP and editing my own site.
My question is, once I’ve inserted the above function into my child themes functions.php, how would i create a shortcode so that I can then display this user information on a generic page?
Are shortcodes the best way to allow this to be displayed on any page i’d like.
For example, I have a static page that I would like to display ‘Welcome {user_name}’ and their profile picture.
WPBeginner Support
Shortcodes are easier way to do that. You can also create templates with specific WordPress functions. See our guide on how how to add a shortcode in WordPress
Admin
ajay
how can i echo user infomation in page
Pavan
I know nothing about php. I just want to show the username of my customer on TOP bar navgation, and from there he can access his account. How do I do that.
Faruk
What if the user not logged in. Can the wordpress still send personalised email with his name? and if sa what is the variable and how?
WPBeginner Support
No WordPress can’t do that.
Admin