Comment masquer/supprimer la barre d'administration qui s'affiche lorsqu'un utilisateur avec un rôle spécifique est connecté? J'ai pensé que je devais faire quelque chose avec remove_menu()
, mais pas exactement quoi et comment.
Ajoutez ce qui suit dans votre fichier functions.php
comme détaillé ici .
Disable Admin Bar pour tout le monde:
// Disable Admin Bar for everyone
if (!function_exists('disable_admin_bar')) {
function disable_admin_bar() {
// for the admin page
remove_action('admin_footer', 'wp_admin_bar_render', 1000);
// for the front-end
remove_action('wp_footer', 'wp_admin_bar_render', 1000);
// css override for the admin page
function remove_admin_bar_style_backend() {
echo '<style>body.admin-bar #wpcontent, body.admin-bar #adminmenu { padding-top: 0px !important; }</style>';
}
add_filter('admin_head','remove_admin_bar_style_backend');
// css override for the frontend
function remove_admin_bar_style_frontend() {
echo '<style type="text/css" media="screen">
html { margin-top: 0px !important; }
* html body { margin-top: 0px !important; }
</style>';
}
add_filter('wp_head','remove_admin_bar_style_frontend', 99);
}
}
add_action('init','disable_admin_bar');
Disable Admin Bar pour tout le monde sauf les administrateurs:
// Disable Admin Bar for everyone but administrators
if (!function_exists('disable_admin_bar')) {
function disable_admin_bar() {
if (!current_user_can('manage_options')) {
// for the admin page
remove_action('admin_footer', 'wp_admin_bar_render', 1000);
// for the front-end
remove_action('wp_footer', 'wp_admin_bar_render', 1000);
// css override for the admin page
function remove_admin_bar_style_backend() {
echo '<style>body.admin-bar #wpcontent, body.admin-bar #adminmenu { padding-top: 0px !important; }</style>';
}
add_filter('admin_head','remove_admin_bar_style_backend');
// css override for the frontend
function remove_admin_bar_style_frontend() {
echo '<style type="text/css" media="screen">
html { margin-top: 0px !important; }
* html body { margin-top: 0px !important; }
</style>';
}
add_filter('wp_head','remove_admin_bar_style_frontend', 99);
}
}
}
add_action('init','disable_admin_bar');
Disable WP Barre d'administration pour des utilisateurs spécifiques via l'ID utilisateur:
// Disable Admin Bar for specific user
if (!function_exists('disable_admin_bar')) {
function disable_admin_bar() {
// we're getting current user ID
$user = get_current_user_id();
// and removeing admin bar for user with ID 123
if ($user == 123) {
// for the admin page
remove_action('admin_footer', 'wp_admin_bar_render', 1000);
// for the front-end
remove_action('wp_footer', 'wp_admin_bar_render', 1000);
// css override for the admin page
function remove_admin_bar_style_backend() {
echo '<style>body.admin-bar #wpcontent, body.admin-bar #adminmenu { padding-top: 0px !important; }</style>';
}
add_filter('admin_head','remove_admin_bar_style_backend');
// css override for the frontend
function remove_admin_bar_style_frontend() {
echo '<style type="text/css" media="screen">
html { margin-top: 0px !important; }
* html body { margin-top: 0px !important; }
</style>';
}
add_filter('wp_head','remove_admin_bar_style_frontend', 99);
}
}
}
add_action('init','disable_admin_bar');
Voici un nugget de code de 6 lignes qui supprimera la barre d'administration pour les utilisateurs non contributeurs:
add_action( 'init', 'fb_remove_admin_bar', 0 );
function fb_remove_admin_bar() {
if (!current_user_can('edit_posts')) { // you can change the test here depending on what you want
add_filter( 'show_admin_bar', '__return_false', PHP_INT_MAX );
}
}
Mettez cela dans votre fichier function.php ou dans votre plugin personnalisé.