Retirer des éléments du dashboard

Retirer des éléments du dashboard

Une fois son site wordpress terminé, on a peut être pas envie que l’utilisateur final aie accès à toutes les options fournies par wordpress, et qu’il modifie à son insu certaines dispositions.

A titre d’exemple, on pourrait retirer le message de mise à jour, le panneau d’option d’écran, le menu apparence auquel il ne faut surtout pas qu’il touche..

Cacher l’option d’écran

Dans la première fonction , avec un if(current_user_can) on empêche l’utilisateur lambda de voir le screen option. Dans la deuxième quelque soit le rôle, on définit les pages d’administration sur lesquelles on va cacher l’option d’écran.

/* * **************************CACHER OPTIONS D ECRAN************************************* */
// Cacher le bouton Options de l'écran pour les non administrateur
if (!current_user_can('administrator')) {

function remove_screen_options() {
return false;
}

add_filter('screen_options_show_screen', 'remove_screen_options');
}


/****************************/
function remove_screen_options($display_boolean, $wp_screen_object){
$blacklist = array('post.php', 'post-new.php', 'index.php', 'edit.php');
if (in_array($GLOBALS['pagenow'], $blacklist)) {
$wp_screen_object->render_screen_layout();
$wp_screen_object->render_per_page_options();
return false;
} else {
return true;
}
}
add_filter('screen_options_show_screen', 'remove_screen_options', 10, 2);

Cacher l’onglet Aide

Ensuite, une fonction simple pour  cacher l’onglet d’aide , en haut à droite également:

add_action('admin_head', 'mytheme_remove_help_tabs');
function mytheme_remove_help_tabs() {
$screen = get_current_screen();
$screen->remove_help_tabs();
}

On passe donc de :  screenoption  à   screen2

Retirer tous les sous-menu de l’onglet Apparence

La dernière, bien utile, permet de ne laisser que l’onglet des menus dans le menu « Apparence« . Ce serait risqué en effet de le laisser changer de thème, ou aller dans l’éditeur pour trifouiller le code. Comme on le voit sur l’image ci dessous, l’admin ne verra que les menus..

dahsboardmenu

function custom_admin_menu() {
global $menu;
global $submenu;
unset($submenu['themes.php']); // Supprime les sous-menus de "Apparence"
$menu[60] = array( 0 => 'Menus', 1 => 'edit_theme_options', 2 => 'nav-menus.php', 4 => 'menu-top menu-icon-appearance', 5 => 'menu-appearance', 6 => 'div' ); // Change le menu "Apparence" en "Menus"
}
add_action('admin_menu', 'custom_admin_menu', 11);