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: aggiungere un testo alla fine del feed RSS

WordPress: aggiungere un testo alla fine del feed RSS

Tempo fa ho spiegato come inserire un testo predefinito alla fine dei post, dal quale è venuto fuori anche un plugin: Add2post. Oggi vorrei fare una cosa analoga, ma con i feed RSS: vedremo quindi come inserire automaticamente un testo predefinito alla fine di ogni elemento del nostro feed, senza l'utilizzo di alcun plugin. Un ...
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 ...
Usare TinyMCE come editor dei nostri plugin WordPress

Usare TinyMCE come editor dei nostri plugin WordPress

Settimana scorsa vi ho spiegato come inserire l'editor di WordPress nei vostri plugin, tuttavia dopo svariati test, ho trovato alcuni limiti nello script che vi ho proposto: la parte di HTML non funziona; è compatibile solo con le ultime versioni di WordPress; non è possibile inserire più di un editor nella stessa pagina. Alla luce di questi ...
WordPress: capitalizzare i titoli nel feed RSS in automatico

WordPress: capitalizzare i titoli nel feed RSS in automatico

Un paio di giorni fa commentavo un articolo di Francesco Gavello, chiedendogli perchè scrivesse i titoli dei suoi articoli mettendo in maiuscolo l'iniziale di ogni parola. Francesco mi ha allora risposto: Semplice impatto e migliore estetica quando finiscono nei feed reader. Una volta mischiati ad altri flussi RSS, risaltano maggiormente e hanno un “ché” di ...
Ottimizzare WordPress per i motori di ricerca, senza plugin

Ottimizzare WordPress per i motori di ricerca, senza plugin

Uno dei plugin che la maggior parte dei blog usa per l'ottimizzazione delle pagine sui motori di ricerca è il famoso All in One SEO Pack. Sicuramente un ottimo plugin, nulla da dire, ma se vi trovaste nella situazione di dover alleggerire il vostro sito in quanto utilizza troppa RAM e CPU, dovreste iniziare ...

6 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