wordPress: rimuovere voci admin da ruoli diversi da administrator

Facciamo il debug di tutte le voci di menù backoffice, anche quelle che inseriscono i plugins, con:

add_action( 'admin_init', 'debug_voci_menu_admin' );
function debug_voci_menu_admin() {
    echo '<pre>' . print_r( $GLOBALS[ 'menu' ], TRUE) . '</pre>';
}

Dall’elenco restituito,

individuiamo la voce di menù che vogliamo rimuovere, ad esempio, per contact form 7 sarà

(
            [0] => Contatti
            [1] => wpcf7_read_contact_forms
            [2] => wpcf7
            [3] => Contact Form 7
            [4] => menu-top menu-icon-generic toplevel_page_wpcf7 menu-top-last
            [5] => toplevel_page_wpcf7
            [6] => none
        )

L’elemento dell’array che ci interessa è il numero 2, ovvero

[2] => wpcf7

Quindi, per rimuoverla

// Rimuoviamo voci di menù backoffice per i ruoli != da administrator
function rimuovi_se_non_admin() {
    global $current_user;
    if(!current_user_can('administrator')) {
        @remove_menu_page( 'wpcf7' ); // uso la @ così nascondo l'errore in caso disabilitassi il plugin contacf form 7
    }
}
add_action('admin_init', 'rimuovi_se_non_admin');

 

wordPress

Comments are disabled.