Admin notices

Permanently suppress admin notices in your WordPress dashboard

Admin notices catches every notice rendered in the dashboard, shows a catalog of them, and lets you permanently suppress the ones you don’t want to see. Ideal for sites where dozens of active plugins clutter the dashboard with upgrade nags and review requests.

Key features

  • Catches notices via output buffering — works even on notices with no filter hook of their own
  • A catalog of captured notices with a text preview (safely rendered as plain text, never HTML)
  • One-click suppression, stored permanently in a dedicated DB option
  • Notice signatures are normalized (no version numbers/nonces), so they usually stay hidden after a plugin update
  • Stored in a non-autoloaded option — doesn’t bloat the main settings payload

How it works

Since WordPress has no clean API for removing a notice registered by an anonymous callback, the module hooks `admin_notices`/`all_admin_notices` twice: at a very low priority it opens `ob_start()`, at a very high priority it captures the output via `ob_get_clean()`.

The captured HTML is split into individual `<div class="notice...">` blocks by manually counting matching tags (not a `.*?` regex, which would break on nested divs), a normalized signature is computed for each block, and that signature decides whether it stays suppressed.

Frequently asked questions

Does a notice stay hidden after a plugin update?
In most cases yes — the notice signature ignores version numbers and nonce values, so it stays the same after an update.
Could the catalog show unsafe HTML from a plugin?
No — the text preview is rendered safely as escaped plain text, it’s never re-rendered as HTML.
Does this bloat the database?
Suppressed notices are stored in a separate, non-autoloaded option, so they aren’t pulled on every page load.