remove “edit your profile” from admin menu bar

How can I remove “edit your profile” submenu under “my-account-with-avatar” admin menu bar, while still keeping the avatar and logout?

Related posts

Leave a Reply

3 comments

  1. There is a remove_menu hook for the admin menu bar.

    The class you want to hook into $wp_admin_bar , you can see the remove function here and test it out since there is no documentation on it ( line 86), it should work with the submenu ID.

    http://core.trac.wordpress.org/browser/tags/3.2.1/wp-includes/class-wp-admin-bar.php

    Since you did not seem to believe me here is the code………

    function ya_do_it_admin_bar_remove() {
            global $wp_admin_bar;
    
            /* **edit-profile is the ID** */
            $wp_admin_bar->remove_menu('edit-profile');
     }
    
    add_action('wp_before_admin_bar_render', 'ya_do_it_admin_bar_remove', 0);
    
  2. WordPress has introduced new stufs (nodes).

    I was searching for remove completly the ‘user account box’ and add a simple logout :

    //http://codex.wordpress.org/Function_Reference/get_nodes
    //http://codex.wordpress.org/Function_Reference/add_node
    
    add_action( 'admin_bar_menu', 'remove_my_account', 999 );
    function remove_my_account( $wp_admin_bar ) {
        $wp_admin_bar->remove_node( 'my-account' );
    }
    
    
    add_action( 'admin_bar_menu', 'add_logout', 999 );
    function add_logout( $wp_admin_bar ) {
        $args = array(
            'id'     => 'logout',           // id of the existing child node (New > Post)
            'title'  => 'Se déconnecter',   // alter the title of existing node
            'parent' => 'top-secondary',    // set parent
        );
        $wp_admin_bar->add_node( $args );
    }
    
  3. I’m not sure if you can remove it (haven’t checked), but you may achieve the same using css to hide the edit your profile link. The list item has an id ‘wp-admin-bar-edit-profile’ which you use to hide it. This is the html used in the admin bar:

    <li id="wp-admin-bar-edit-profile" class="">
      <a href="http://www.example.com/wp-admin/profile.php">Edit My Profile</a>
    </li>
    

    I’m using the following css:

    #wp-admin-bar-edit-profile { display: none }
    

    This hides the link in the admin bar without any of the other links. Add this css snippet to your theme’s style.css and the link will be hidden in the admin bar when viewing your site. Hiding it in the admin bar when viewing the WordPress backend involves a bit more and might be moot since there’s also a link to the profile in the menu on the left.