| 开发者 | rainynewt |
|---|---|
| 更新时间 | 2026年9月11日 00:39 |
| PHP版本: | 8.1 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv3 or later |
| 版权网址: | 版权信息 |
wp_attic_quarantined_*), never dropped until a purge window passes.wp-config.php, looking for every candidate name before promoting anything to high confidence. (PHP, JS, JSON and .inc files; node_modules, vendor, dist and build directories are skipped.)wp_attic_quarantined_*) and options are backed up first, with one-click restore inside the purge window (default 30 days, configurable). Permanent removal only happens once a quarantined batch passes the purge window un-restored, or if you purge it yourself on purpose. Attic also checks plugin files on disk and searches your code for references before promoting findings to high confidence, so uncertain items stay at "review."
WP-CLI
Run scans from the command line for automation and CI/CD pipelines:
wp attic scan — run a full database auditwp attic findings — list and filter findingswp attic quarantine — manage quarantine batcheswp attic status — check plugin statuswp attic map status — inspect the bundled attribution mapwp attic map status — show the bundled map version and entry countattic_prefix_map_entries filterassets/vendor/chart.umd.min.js, used
only to draw the autoload trend chart in the admin. It is served from your own
site. Attic makes no outbound network requests of any kind.
The scan is read-only. Nothing changes until you take an explicit, confirmed action. Core options like siteurl, active_plugins and cron can never be flagged, and neither can anything on your own protected list or the attic_protected_options filter.
Tools → Attic → Quarantine. Every action creates a batch; restore a whole batch in one click. Batches auto-purge after 30 days (configurable).
For most rules, high confidence requires the owning plugin to be absent from disk (or the option to be size-flagged and unread), and zero literal and zero prefix references anywhere in your code. Dynamic option names never literal-match, so even a weak signal keeps a finding at "review". If your filesystem could not be read, everything is marked unverified rather than guessed at. Two rules are exceptions, because a code search cannot tell you anything useful about them: an expired transient and a meta row whose parent is gone are facts about your database, not guesses about your code. Those are reported as high confidence on their own evidence.
Yes — when Redis/Memcached is active, transients never touch the options table, and Attic says so instead of showing a meaningless clean bill of health.
Yes. Single-site, subdirectory multisite, and subdomain multisite installs all work. Network-wide fleet scanning is available via the network admin dashboard.
Attic works with all WordPress plugins — it's a read-only cleanup tool that doesn't touch plugin data unless you explicitly quarantine it. The attribution map helps identify which plugin owns which database entries, but the scan works regardless of whether a plugin is in the map.
Plugins with known prefixes in the attribution map get named attribution, and the "leftovers from a deleted plugin" rule relies on the map to know which prefixes belonged to which plugin.
Data belonging to a plugin that is not in the map is still found by the other rules — an oversized autoloaded option, an orphaned table or a dead cron event is detected either way. It just shows its owner as "unknown". You can add your own entries with the attic_prefix_map_entries filter.
No. Attic quarantines data (renames tables, copies options), never deletes. You can restore anything from Quarantine within the purge window (default 30 days, configurable).
Attic correctly detects network-active plugins and never flags their data as orphaned, even if they're deactivated on individual sites.