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

3 Answers 3


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.


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** */

add_action('wp_before_admin_bar_render', 'ya_do_it_admin_bar_remove', 0);
  • There is no individual hook for "edit my profile". It's either I loose the whole account menu with logout and edit profile and avatar (if any), or keep them all. So, I ended up editing admin-bar.php
    – Sean Lee
    Commented Jul 17, 2011 at 19:05
  • 1
    The above code takes the ID's, the submenu item surely has an ID, do not hack core files, they are overwritten on updates besides about 100 other reasons.
    – Wyck
    Commented Jul 17, 2011 at 19:39
  • Unfortunately there isn't any individual ID for edit my profile. BTW, this item is located in admin-bar.php. Unless you found something different that I missed. Please let me know.
    – Sean Lee
    Commented Jul 17, 2011 at 23:20
  • I know what it is for and it has and ID, dump out the admin bar menu array and you will see it, you can also see it in the core file I linked above, $child = array( 'id' => $id, 'title' => $title, 'href' => $href );
    – Wyck
    Commented Jul 18, 2011 at 3:02
  • Added code to OP since you seem to not believe me....but thanks for the downvote...
    – Wyck
    Commented Jul 18, 2011 at 3:29

Wordpress has introduced new stufs (nodes).

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


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 );
  • How can you show the blog name here, first name, last name as well as logout
    – Amjad
    Commented Oct 17, 2016 at 21:00

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>

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.

  • Hiding it is not clean enough, HOw about rewrite, anyway to rewrite it?
    – Sean Lee
    Commented Jul 15, 2011 at 17:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.