I found this to be very useful. It removes the output of the menu item instead of just hiding it with CSS. It also can differentiate where you want to remove the admin bar item (front-end/back-end).
I can’t take credit for this; it was written by Jason Yingling. I found the code here (https://jasonyingling.me/removing-items-from-the-wordpress-admin-bar/).
He gives a lot of detail and shows how you can remove other admin items (that I commented out below).
/**
* Remove Admin Bar Items We Don’t Want to See
*/
function remove_from_admin_bar($wp_admin_bar)
{
/**
* Placing items in here will only remove them from admin bar
* when viewing the fronte end of the site
*/
if (!is_admin()) {
/**
* Example of removing item generated by plugin.
* Full ID is #wp-admin-bar-si_menu
*/
//$wp_admin_bar->remove_node(‘si_menu’);
// WordPress Core Items (uncomment to remove)
//$wp_admin_bar->remove_node(‘updates’);
//$wp_admin_bar->remove_node(‘comments’);
//$wp_admin_bar->remove_node(‘new-content’);
//$wp_admin_bar->remove_node(‘wp-logo’);
//$wp_admin_bar->remove_node(‘site-name’);
//$wp_admin_bar->remove_node(‘my-account’);
//$wp_admin_bar->remove_node(‘search’);
//$wp_admin_bar->remove_node(‘customize’);
}
/**
* Items placed outside the if statement will remove it from both the frontend
* and backend of the site
*/
$wp_admin_bar->remove_node(‘villatheme’);
}
add_action(‘admin_bar_menu’, ‘remove_from_admin_bar’, 999);