Torniamo a parlare di come personalizzare WordPress e vediamo in particolare le funzioni relative agli utenti, non tutte documentate dal Codex.
Chi è solito creare temi o plugin per WordPress può spesso aver bisogno di gestire i dati degli utenti, i permessi ed i loro ruoli. Vediamo allora delle situazioni comuni e come possiamo risolverle.
1. Recuperare i dati dell’utente corrente
Per recuperare i dati profilo dell’utente correntemente loggato, possiamo usare la funzione get_currentuserinfo(), così:
global $current_user;
get_currentuserinfo();
$user = $current_user->user_login;
$email = $current_user->user_email;
$name = $current_user->display_name;
$id = $current_user->ID;
?>
Le altre variabili utente potete vederle nel dettaglio a questa pagina.
2. Recuperare i dati di un utente, dato l’ID
Se vogliamo invece conoscere i dati di un utente di cui conosciamo solo l’ID, usiamo la funzione get_userdata():
$user_info = get_userdata(5);
$user = $user_info->user_login;
$name = $user_info->display_name;
?>
Vi rimando alla documentazione per i dettagli.
3. Recuperare i dati di un utente, dato l’username
Stavolta invece dell’ID abbiamo l’username: recuperiamo i dati con la funzione get_userdatabylogin():
$user_info = get_userdatabylogin('username');
$id= $user_info->ID;
$name = $user_info->display_name;
?>
I parametri utente sono gli stessi delle due funzioni sopra.
4. Recuperare i dati di un utente, data l’email
Ora vogliamo recuperare i dati, avendo solo l’email dell’utente. Usiamo la funzione get_user_by_email():
$user_info = get_user_by_email('info@mydomain.it');
$id= $user_info->ID;
$name = $user_info->display_name;
?>
I parametri utente sono gli stessi delle funzioni sopra, quindi fate riferimento a questa pagina.
5. Ricavare il metakey di un utente
Ricaviamo il metakey di un utente di cui conosciamo l’ID, con la funzione get_usermeta():
Vedi la documentazione della funzione.
6. Ricavare l’username dell’autore di un post
Bè, questo è facile. Basta usare, nel Loop, la seguente funzione:
7. Ricavare l’ID dell’autore di un post
Anche qui non troviamo grandi difficoltà:
8. Verificare se l’utente è loggato
Per controllare se il visitatore è loggato, usiamo la funzione is_user_logged_in().
Possiamo utilizzarla, in combinazione con quanto appreso prima, per stampare un messaggio di benvenuto nel caso l’utente sia loggato:
if(is_user_logged_in()){
global $current_user;
get_currentuserinfo();
echo 'Benvenuto, <strong>' . $current_user->display_name . '</strong>';
}
?>
9. Verificare se l’utente ha un determinato permesso
Per poter verificare che l’utente corrente abbia o meno un certo permesso, si usa la funzione current_user_can():
if(current_user_can('edit_posts')){
//...
}
?>
Per l’elenco con tutti i permessi, vedere la documentazione.
10. Ricavare il ruolo dell’utente corrente
Per ottenere il ruolo dell’utente correntemente loggato non esiste una funzione predefinta, dobbiamo crearla noi. Apriamo allora il nostro file functions.php ed incolliamo il codice seguente:
global $current_user, $wp_roles;
foreach($wp_roles->role_names as $role => $Role) {
if (array_key_exists($role, $current_user->caps))
break;
}
return $role;
}
L’utilizzo è immediato:
E per oggi è tutto. Sono sicuro che queste 10 funzioni vi torneranno utili nello sviluppo dei vostri temi o plugin.




Ciao Daniele, sai come fare un permesso a tempo ad un utente? Cioè il sign rossi può accedere a tutto il blog per i prossimi 365 giorni a scalare..
ciao a tutti, il post è interessante e utile, vorrei sapere se c’è un modo per ricavare alcuni dati di TUTTI gli utenti registrati e metterli in un post. La mia idea sarebbe: l’utente si registra > si crea un post in automatico in una data catagoria > il post prende il titolo di un campo del form di registrazione e nel corpo del post ci devono essere altri campi dati nel form di registrazione, il post dovra essere moderato in seguito alla registrazione…
Grazie a tutti.
ciao
esiste qualche funzione per recuperare i dati tipo email, nome, id, se gli viene assegnato un id, di chi commenta un post?
grazie
bel post
Ottimo post
Grazie