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