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');