BigThink

WordPress tip: 10 funzioni per gestire gli utenti

Wordpress userTorniamo 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ì:

<?php
    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():

<?php
    $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():

<?php
    $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():

<?php
    $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():

<?php $last_name = get_usermeta(5, 'last_name'); ?>

Vedi la documentazione della funzione.

6. Ricavare l’username dell’autore di un post

Bè, questo è facile. Basta usare, nel Loop, la seguente funzione:

<?php $user = get_the_author_login(); ?>

7. Ricavare l’ID dell’autore di un post

Anche qui non troviamo grandi difficoltà:

<?php $id = get_the_author_id(); ?>

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:

<?php
    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():

<?php
    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:

function get_user_role(){
    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:

<?php $role = get_user_role(); ?>

E per oggi è tutto. Sono sicuro che queste 10 funzioni vi torneranno utili nello sviluppo dei vostri temi o plugin.

Articolo scritto da Ghido

Fondatore di BigThink.it, si occupa dello sviluppo e del coordinamento dei progetti tecnologici. Specializzato nel Marketing su Facebook e nello sviluppo di Applicazioni Social, fa consulenza e formazione ad aziende ed agenzie.

Leggi anche...

WordPress trick: come risolvere il problema del feed non valido

WordPress trick: come risolvere il problema del feed non valido

Qualche volta potrà capitarvi un problema piuttosto fastidioso con WordPress: improvvisamente il vostro feed RSS risulta non più valido ed il browser si rifiuta di visualizzarlo, segnalando un errore di interpretazione XML senza un apparente motivo. Disperati, andate in cerca del problema, aggiornate la versione di WordPress e tutti i plugin attivi, ma niente, ...
WordPress: Dare agli spammer la possibilità di redimersi

WordPress: Dare agli spammer la possibilità di redimersi

Si conclude oggi la miniserie di Camu: dopo aver visto come va modificato l'.htaccess e come farlo in automatico, oggi impariamo a personalizzare la pagina di errore. Dai commenti sul mio blog alla prima puntata di questa miniserie è venuta fuori un'interessante discussione su cosa "vedono" gli spammer presenti nella lista nera quando tentano ...
WordPress: creare una sezione di post in Evidenza

WordPress: creare una sezione di post in Evidenza

Vi è mai capitato di scrivere un ottimo articolo e vederlo sparire nel tempo, senza alcuna visita o commento? Esistono varie tecniche per dare visibilità ai post più vecchi del nostro blog, che normalmente non verrebbero più letti, e portargli nuovamente visite. Possiamo usare plugin come Related Post with Thumb per mostrare gli articoli ...
Impostare l'anteprima quando condividiamo un post su Facebook

Impostare l’anteprima quando condividiamo un post su Facebook

Quello che voglio condividere con voi oggi è un trucchetto facile, ma molto utile, che sicuramente pochi di voi conoscono ed utilizzano. Provate a condividere questo post su Facebook, pubblicandolo tramite la vostra bacheca oppure cliccando sull'icona di Facebook appena sotto l'articolo. Cosa notate? Vi si aprirà la finestra per condividerlo ma, a differenza ...
WordPress: escludere dalla home i post di una certa categoria

WordPress: escludere dalla home i post di una certa categoria

Qualche mese fa avevo scritto una pillola per WordPress che è stata piuttosto apprezzata: Come creare una sezione di post in Evidenza, nella quale spiegavo come creare una sezione a parte, con i post che si vogliono mettere in evidenza. Ieri, Teodoro Di Stasi mi ha domandato: Come potrei fare in modo che gli articoli ...

8 Commenti

  1. 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..

    23 agosto 2010, 04:25
  2. xma001

    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.

    14 giugno 2010, 11:49
  3. antonio

    ciao
    esiste qualche funzione per recuperare i dati tipo email, nome, id, se gli viene assegnato un id, di chi commenta un post?
    grazie

    8 novembre 2009, 21:21
  4. bel post

    3 luglio 2009, 20:09
  5. Ottimo post :D

    12 febbraio 2009, 10:55
    • Ghido

      Grazie :)

      12 febbraio 2009, 11:31

2 Citazioni