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. 😉