WordPress 7.1 makes the toolbar persistent in the Post and Site Editors, replaces the ambiguous site-icon back action with a dedicated chevron, and keeps the site identity visible. Plugins and themes that add admin-bar nodes, assume fullscreen hides the toolbar, use fixed offsets, or bind only on a full page load can break.
Use this for plugins that add toolbar menus, editorial workflow actions, preview links, cache buttons, support shortcuts, multisite controls, role-specific tools, fixed notices, or JavaScript that runs during editor navigation.
Quick answer
Inventory every custom admin-bar node and fixed-position element, then test Post Editor, Site Editor, template editing, front end, wp-admin, distraction-free mode, fullscreen preferences, mobile width, multisite, and each supported role. Check whether nodes appear intentionally, permissions remain correct, the chevron returns to the expected screen, client-side navigation rebinds actions once, keyboard focus is visible, and CSS offsets do not cover editor controls. Use get_current_screen and is_block_editor only when the product decision is to hide a node from editor contexts.
Test scenarios to run
Run the same controlled fixture across these branches. Write down the expected result before testing so a surprising response is easy to identify.
| Scenario | Fixture | Expected result |
| Post Editor | Editor role | One permitted node |
| Site Editor | Administrator | Correct menu and chevron |
| Distraction free | Toolbar hidden | No overlap |
| Client navigation | Three transitions | No duplicate handlers |
Diagnostic table
Use this table to connect the observed behavior to evidence and a verification step.
| Action | Evidence | Verification |
| Inventory nodes and offsets | Record WordPress version, editor type, theme, active plugins, user role, multisite state, fullscreen preference, distraction-free state, viewport, toolbar nodes, CSS offsets, and JavaScript listeners. | Toolbar nodes appear once, only for permitted roles and intended screens. |
| Test every editor context | Inventory callbacks on admin_bar_menu, node IDs, priorities, capability checks, URLs, nonces, icons, submenus, fixed notices, top offsets, and editor-specific exclusions. | Back navigation, site menu, About link, fullscreen, and distraction-free behavior match the product decision. |
| Count client-navigation handlers | Test posts, pages, custom post types, Site Editor, templates, patterns, front end, classic screens, multisite, mobile, zoom, RTL, keyboard, and reduced motion. | Keyboard focus, zoom, mobile, RTL, and fixed-position elements remain usable. |
| Fix permissions and focus | Navigate between supported editor screens without a full reload and count node instances, event listeners, network calls, focus movement, history entries, and stale nonces. | Repeated editor navigation creates no duplicate listeners, stale nonces, or extra requests. |
What to check first
- Record WordPress version, editor type, theme, active plugins, user role, multisite state, fullscreen preference, distraction-free state, viewport, toolbar nodes, CSS offsets, and JavaScript listeners.
- Inventory callbacks on admin_bar_menu, node IDs, priorities, capability checks, URLs, nonces, icons, submenus, fixed notices, top offsets, and editor-specific exclusions.
- Test posts, pages, custom post types, Site Editor, templates, patterns, front end, classic screens, multisite, mobile, zoom, RTL, keyboard, and reduced motion.
- Navigate between supported editor screens without a full reload and count node instances, event listeners, network calls, focus movement, history entries, and stale nonces.
- Hide nodes only when they have no editor purpose, preserve capability checks, use stable screen detection, and add CSS tests for the persistent toolbar height.
Field notes
- Write the pass condition before changing anything and keep one repeatable synthetic fixture for the full test window.
- Record exact versions and UTC timestamps because deployments, caches, retries, scheduled actions, and background jobs can change the evidence.
- Test the public path and the stored server-side result, not only an admin preview, isolated command, or API response.
- Repeat verification after the relevant cache, queue, cron, webhook, and observation window has completed.
Useful command or data shape
Adapt paths, IDs, and privacy handling to the site before running commands or storing data on production.
add_action( 'admin_bar_menu', function ( WP_Admin_Bar $bar ) {
$screen = function_exists( 'get_current_screen' ) ? get_current_screen() : null;
if ( $screen && $screen->is_block_editor() ) { return; }
// Add the node only when the product decision requires it outside editors.
}, 100 );
Why this usually happens
- A plugin assumes the toolbar is absent whenever the block editor is fullscreen.
- Fixed notices use an old top offset and cover editor controls.
- A script adds handlers after every client-side navigation without cleanup.
- A node appears for a role that lacks permission for its destination.
Decision rule
Approve WordPress 7.1 when every supported role sees one intentional toolbar state, navigation returns predictably, and no fixed UI, focus, nonce, or listener breaks across editor transitions.
Production verification checklist
- Toolbar nodes appear once, only for permitted roles and intended screens.
- Back navigation, site menu, About link, fullscreen, and distraction-free behavior match the product decision.
- Keyboard focus, zoom, mobile, RTL, and fixed-position elements remain usable.
- Repeated editor navigation creates no duplicate listeners, stale nonces, or extra requests.
Safe fix order
Use a sequence that makes each result easy to prove. Stop when new evidence changes the scope or owner of the problem.
- Inventory nodes and offsets
- Test every editor context
- Count client-navigation handlers
- Fix permissions and focus
- Add responsive regression coverage
Mistakes to avoid
- Changing production before recording exact plugin versions, UTC timestamps, a stable fixture, the expected result, and a tested rollback point.
- Treating one successful screen as proof while stored records, logs, queues, caches, emails, APIs, and downstream systems remain unchecked.
- Testing only as an administrator instead of using the role, device, locale, cache state, payment state, and failure branch that customers reach.
- Leaving temporary exclusions, debug output, test accounts, broad permissions, or one-off repair code active after verification.
Questions teams ask during testing
Can I run this directly in production?
Begin with read-only evidence and use staging for package, database, checkout, form, permission, or security changes. If a production canary is necessary, make it identifiable, reversible, monitored, and unable to expose personal data or charge a customer.
How do I avoid a false positive?
Repeat the same fixture with the same versions, role, URL, locale, cache state, and integrations. Compare browser, stored, API, and log evidence instead of relying on one screen.
What should the evidence packet contain?
Keep UTC time, exact versions, synthetic record ID, expected result, actual result, relevant log lines, change made, rollback point, owner, and final verification. Redact secrets and personal data.
When is the test complete?
Close the work when the primary path passes, failure branches are understood, stored and downstream records reconcile, temporary changes are removed, and monitoring covers the next update.
What to tell the client or owner
Give the owner a concise packet with the affected workflow, exact versions, UTC test time, fixture ID, expected result, actual result, key logs, change made, rollback point, final result, unresolved risks, owner, and next review date. Remove credentials and personal data before sharing it.
When HandL WP should help
Bring in help when this affects leads, checkout, search visibility, security, paid media reporting, or a client production site. HandL WP can trace the issue through WordPress, hosting, cache, tracking, and Search Console, then verify the workflow after the technical fix.
If this is active on a production site, have HandL WP test WordPress 7.1 compatibility.
Related HandL WP guides
Use these related guides when the same issue touches tracking, security, checkout, or crawler visibility.
Helpful references