How to Disable Admin Bar for All Users Except Site Admin

To disable the admin bar for all users except the site admin in WordPress, you can use the `show_admin_bar` filter along with the `current_user_can()` function to check the user’s capabilities. Here’s an example of how you can achieve this:

 

// Function to disable admin bar for non-admin users
function disable_admin_bar_for_non_admins() {
    if (!current_user_can('administrator') && !is_admin()) {
        show_admin_bar(false);
    }
}
add_action('after_setup_theme', 'disable_admin_bar_for_non_admins');

 

In this example, the `disable_admin_bar_for_non_admins()` function is hooked to the `after_setup_theme` action, which ensures it is executed early in the WordPress initialization process. Inside the function, it checks if the current user does not have the ‘administrator’ capability and is not in the admin area (`is_admin()`). If the user does not meet these conditions, the `show_admin_bar()` function is called with `false` as the argument to disable the admin bar for that user.

By using this code snippet, the admin bar will be hidden for all users except those with the ‘administrator’ role. This provides a clean and focused interface for non-admin users while preserving the admin bar functionality for site admins.

You can place this code in your theme’s `functions.php` file or in a custom plugin. Remember to save the changes and test the functionality while logged in as a non-admin user to ensure the admin bar is appropriately disabled.

Categories

Related Blogs

To list down future posts in WordPress

To list down future posts in WordPress, you can use the `WP_Query` class to customize the query and fetch future posts. The future posts are the ones with a post status of “future,” and their publication date is scheduled in the future.

WooCommerce: Check if Product Category is in the Cart

To check if a specific product category is in the cart during the `woocommerce_before_cart` action hook, you can use a similar approach as in the previous answer. However, in this case, you need to use the `woocommerce_before_cart_contents` action hook, which fires before the cart items are displayed on the cart page. Here’s how you can achieve this: