Spesso, quando diamo un account amministratore ad un nostro cliente, c’è la necessità di rimuovere una qualche voce di menù dall’area di amministrazione, per i motivi più disparati. In questo articolo, vi mostrerò come è facile ottenere questo risultato.
Il menu di WordPress è composto da menù e sotto-menù, supponiamo che vogliamo togliere (anzi nascondere) la possibilità di cambiare oppure modificare (con l’editor di WordPress) il tema corrente.
Queste due voci, sono sotto-menù del menù “Aspetto“.
Aggiungere il seguente codice al file function.php
<?php
add_action( 'admin_init', 'my_remove_menu_pages' );
function my_remove_menu_pages() {
global $userdata;
get_currentuserinfo();
if ($userdata->ID != 1) {
remove_submenu_page('themes.php', 'themes.php');
remove_submenu_page('themes.php', 'theme-editor.php');
}
}
?>
Lo script è relativamente semplice, da notare che testiamo l’id utente, se diverso da 1 (supponendo che questo sia il nostro) allora rimuoviamo le voci.
La funzione remove_submenu_page() accetta due parametri. Il primo è lo slug del menu genitore, il secondo lo slug del sotto-menù che vogliamo rimuovere.
Nel caso avessimo voluto rimuovere l’intero menu Aspetto allora la funziona da usare sarebbe stata remove_menu_page().
[box type=”note”]E’ importante essere consapevoli del fatto che questo approccio non impedisce a un utente di accedere alle schermate direttamente. Ma sono soltanto rimosse la voci di accesso alle pagine dal menù.[/box]
Nel caso non conoscessimo lo slug del menù da cancellare un trucchetto per trovarlo è eseguendo il var_dump() della variabile globale $submenu. 😉