Remove admin bar items nobody uses
Disable Admin Bar Items lets you turn off any entry in the admin bar, WordPress's own or added by another plugin, so it stops rendering entirely instead of being hidden with CSS.
- A toggle for every item actually present in your admin bar.
- Detects entries added by plugins and themes automatically.
- Removed server-side, not hidden with CSS a theme update can undo.
- Individual sub-items, like My Account, can be disabled separately.
WordPress
Plugins & Themes
What does Disable Admin Bar Items do?
When the disable_admin_bar_items module is active, TOWP_Disable_Admin_Bar_Items reads the admin bar's actual node list on admin_bar_menu at priority 99999, late enough to capture every item WordPress core and every active plugin has added, including nodes registered as late as the search box. That list, split into WordPress's own items and items from plugins and themes, is what populates the settings screen; toggling one on calls remove_node() for that specific entry, so it no longer renders at all rather than being hidden with CSS. A fallback build runs on admin_init too, so the list of available items still populates correctly even for a role where the admin bar itself is hidden by another setting.
The admin bar fills up with things nobody clicks
A bar that fills up one plugin at a time ends up crowded with entries nobody deliberately asked for.
Default items assume a use nobody has
The WordPress logo menu leads to the support forums and showcase, the comments bubble appears even on a site with comments turned off entirely, and neither serves the site they're sitting on.
Every plugin adds its own entry
Each active plugin that touches the admin bar tends to add its own icon or menu, and the bar fills with entries meant for occasional configuration, not everyday use.
Turn items off at the source
The module reads what's actually in the admin bar and lets any of it be switched off completely, not painted over.
A list built from the real bar
The available items come from the admin bar's own node list, not a fixed list of guesses, so plugin-added entries appear automatically.
Removed, not hidden
A disabled item is removed from WordPress's own node list before rendering, rather than hidden with CSS that a theme or plugin update can bring back.
Individual sub-items, not just whole groups
Items nested under a group, like My Account, can be disabled on their own, without removing the entire group.
A cleanup list built from reality
Every capability below is present in the supplied PHP class and its settings registration.
Built from the live admin bar
The list of available items comes from WP_Admin_Bar::get_nodes(), read at the point every core and plugin item has already registered.
WordPress items and plugin items, separated
Core WordPress entries and items added by plugins or themes get grouped separately in the settings screen.
remove_node(), not CSS
A disabled item is removed from the admin bar's own node tree, so it's genuinely gone rather than visually hidden.
Sub-items exposed individually
Items inside a group node, like the account menu, get expanded into their own toggles instead of only offering the whole group.
Works even if the bar is hidden
A fallback builds the admin bar's node list independently on admin_init, so the settings list still populates for a role where the bar itself is hidden.
Refreshed on every admin load
The available-items list gets rebuilt on every admin page load, so it reflects newly installed or removed plugins automatically.
Where trimming the bar helps most
The module supports every admin bar that's collected more than it actually needs.
Trimming a cluttered admin bar
Remove entries that never get used, from either WordPress core or an installed plugin, without hunting down a CSS snippet for each one.
Client-facing sites
Hide developer-facing items like Query Monitor's menu or a caching plugin's controls from accounts that shouldn't be touching them.
Mobile-specific cleanup
Turn off items like the mobile menu toggle if a custom mobile experience makes it redundant.
A bar that only shows what's used
The module combines an accurate discovery pass, permanent removal and precise sub-item control.
One pass, direct removal
The verified implementation reuses data WordPress already assembled, rather than duplicating any of it.
One list build per admin load
The available-items list gets rebuilt once per admin page load, from data WordPress already assembled for the bar itself.
No effect when nothing is disabled
If no items are toggled off, the module still records the list for settings but performs no removal at all.
A direct removal, not a display filter
Removing a node happens once, directly on the admin bar object, rather than through a repeated visibility check on every render.
Sanitized IDs, read-only discovery
The code sanitizes every node ID and never modifies anything while simply building the available-items list.
Administrator-only configuration
Only an administrator with access to TheOneWP settings can choose which admin bar items get disabled.
Node IDs are sanitized
Every node ID, both when building the list and when removing an item, passes through sanitize_key() before use.
No effect on capability checks
Removing an item from the admin bar doesn't touch the underlying capability that controls whether a user could otherwise reach that feature.
A read-only discovery pass
Building the available-items list only reads the bar's existing nodes; it never adds, modifies, or triggers anything on its own.
Built around native WordPress admin bar APIs
The supplied code integrates through APIs present in WordPress core. No compatibility claim beyond the verified implementation is assumed.
admin_bar_menu, priority 99999
Runs late enough that every core and plugin-added node, including ones registered close to the end like the search box, is already present.
admin_init
Independently rebuilds the admin bar's node list when the bar itself isn't rendered for the current context.
WP_Admin_Bar::remove_node()
Uses the same method WordPress core and other plugins use to remove their own admin bar entries.
TheOneWP versus common alternatives
Compare the verified Disable Admin Bar Items implementation with a typical hand-written CSS snippet.
| Capability | TheOneWP Disable Admin Bar Items | Other common solutions |
|---|---|---|
| Discovering what's in the bar | A live list generated from the actual admin bar | Usually a fixed list that misses plugin-added items |
| Removing an item | Removed from the node tree before rendering | Often hidden with a CSS snippet that a theme update can undo |
| Sub-items like My Account | Toggled individually | Usually only the whole group can be hidden at once |
| Staying current | Rebuilt automatically as plugins change | A CSS snippet needs updating by hand for each new item |
| Administration | One list inside TheOneWP settings | Requires writing and maintaining CSS or PHP by hand |
Trim the admin bar in four steps
Start with the obviously unused core items, then work through what plugins have added.
Enable Disable Admin Bar Items
Activate the module from the TheOneWP Backend settings tab.
Review the generated list
Check the WordPress and Plugins & Themes groups for items that don't serve this particular site.
Toggle off what isn't needed
Switch off entries one at a time, or several at once, based on what actually gets used.
Revisit after adding a new plugin
A newly installed plugin's admin bar item appears automatically the next time the list refreshes.
Trim with who's using it in mind
What's clutter for one role can be exactly what another role relies on.
Check with different roles in mind
An item that's clutter for one role might be exactly what another role needs; consider who actually sees the bar.
Start with the obviously unused core items
The WordPress logo menu and the comments bubble are common first candidates on sites that don't use either.
Leave developer tools visible for developers
Items like Query Monitor's menu are worth keeping for accounts that actually debug the site.
Recheck the list after major plugin changes
Removing or replacing a plugin can leave a stale toggle behind; the list rebuilds automatically, but it's worth a glance.
Avoid assumptions that remove the wrong thing
The module has clear behaviour around groups and sub-items that's easy to misread.
Disabling an item and forgetting why
A missing menu entry can look like a bug later if there's no note about why it was turned off.
Removing an item everyone actually needs
Something that looks unused to one role, like the account menu, may be exactly how another role manages their own profile.
Assuming a sub-item toggle affects the whole group
Disabling one child item, like a single entry under My Account, leaves the rest of that group exactly as it was.
Disable Admin Bar Items FAQ
These answers come directly from the verified class and its settings registration.
What does Disable Admin Bar Items do?
It lets an administrator turn off individual admin bar entries, WordPress's own or added by a plugin, so they stop rendering at all instead of being hidden with CSS.
Where does the list of available items come from?
From the admin bar's own live node list, read after every core and plugin item has registered, so plugin-added entries appear automatically.
Is a disabled item hidden with CSS?
No. It's removed from the admin bar's node tree before rendering, using the same remove_node() method WordPress itself uses.
Can I disable a specific item inside a group, like My Account?
Yes. Items nested under certain groups are exposed as their own individual toggles rather than only offering the whole group.
What happens to the list if I install a new plugin?
The available-items list rebuilds on every admin page load, so a newly added item appears the next time the settings screen loads.
Does this module work if the admin bar is hidden for some users?
Yes. A fallback independently rebuilds the item list on admin_init, so the settings screen still populates correctly.
Does removing an admin bar item change what a user can access?
No. It only removes the menu entry itself; the underlying capability or feature it linked to stays unaffected.
Can I tell which items came from WordPress core versus a plugin?
Yes. The settings screen groups items into "WordPress" and "Plugins & Themes" automatically.
Who can change which items are disabled?
Only an administrator with access to the TheOneWP settings screen.
Will a theme update undo my disabled items?
No. Since removal happens through WordPress's own admin bar API rather than CSS, a theme update has no effect on it.
Stop hiding admin bar clutter with CSS.Remove it for good instead.
Use Disable Admin Bar Items to turn off any entry, from WordPress core or a plugin, right from a list built from your own admin bar.

