Permetti l'accesso al solo Dashboard agli utenti!

24 giu 2011, 16:22:54
Visualizzazioni: 1.56K
Voti: 1

Aggiornamento: Questo snippet rimuove il menu anche per il mio account admin:

function remove_menu_items() {

    global $menu;
    global $user_ID; 

    if( $user_ID ) :

        /* Accesso solo al Dashboard */
        if( current_user_can( 'Dashboardvisitors' ) ) :

            $restricted = array(
                __('Articoli'),
                __('Media'),
                __('Pagine'),
                __('Collegamenti'),
                __('Aspetto'),
                __('Strumenti'),
                __('Utenti'),
                __('Impostazioni'),
                __('Commenti'),
                __('Plugin')
            );

        endif;

    endif;  

    end ( $menu );

    while ( prev( $menu ) ) :
        $value = explode( ' ', $menu[key($menu)][0] );
        if( in_array( $value[0] != NULL?$value[0]:"" , $restricted ) ) :
            unset( $menu[key($menu)] );
        endif;
    endwhile;

}
add_action('admin_menu', 'remove_menu_items');

Come posso dare a un utente l'accesso solo al dashboard?

Più specificamente, voglio che possano vedere solo il widget delle statistiche di WordPress e il widget di Google Analytics. Nient'altro.

Ho creato un nuovo utente con il ruolo dashboardvisitors usando il plugin USER ROLE EDITOR.

Ora livello 0 più accesso in lettura non è sufficiente. Il dashboard risulta vuoto.

Aggiungere modifica dashboard non cambia nulla. Sempre vuoto (ma comunque non voglio che possano modificare il dashboard).

Come posso ottenere questo risultato? È molto importante, grazie mille!

0
Tutte le risposte alla domanda 1
1

Puoi inserire questo nel tuo functions.php :

function remove_menu_items() {

    global $menu;
    global $user_ID; 

    if( $user_ID ) :

        /* Accesso solo alla Dashboard */
        if( current_user_can( 'dashboardvisitors' ) ) :

                $restricted = array(
                    __('Articoli'),
                    __('Pagine'),
                    __('Link'), 
                    [ecc...]
            );

        endif;

    endif;  

    end ( $menu );

    while ( prev( $menu ) ) :
        $value = explode( ' ', $menu[key($menu)][0] );
        if( in_array( $value[0] != NULL?$value[0]:"" , $restricted ) ) :
            unset( $menu[key($menu)] );
        endif;
    endwhile;

}
add_action('admin_menu', 'remove_menu_items');

Ciò che fa è che per ogni utente con il ruolo 'dashboardvisitors' che accede all'admin di WP, rimuove le voci di menu elencate nell'array restricted. Se elenchi tutte le sezioni dell'admin tranne la dashboard in quell'array, dovresti ottenere un admin con accesso solo alla dashboard.

24 giu 2011 16:40:02
Commenti

Grazie @mike23, dove posso trovare un elenco di tutti gli array che posso/dovrei rimuovere?

Simon Simon
24 giu 2011 17:35:50