| 开发者 | kuber8821 |
|---|---|
| 更新时间 | 2026年10月16日 15:46 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
active_plugins option. Not once, on any code path. It filters the active plugin list in memory, for one signed-in administrator, for the length of one expiring session. Because nothing is written, restoring is not an operation Tracedown has to perform correctly. There is nothing to undo. Doing nothing restores the site when the session expires. Deleting one file restores it instantly.
That is a checkable claim, not a slogan. Search this plugin for a write to the active_plugins option, or for a call to core's plugin activation and deactivation helpers, and you will not find one. The build fails automatically if anyone ever adds one.
And it names the culprit. Tracedown does not hand you a list of 86 checkboxes to toggle one at a time. It runs a deterministic delta-debugging search (ddmin) over the plugins that were active when the session started and returns a minimal failing set, which stays correct when two plugins only break the site together, the case a naive one-at-a-time or split-in-half search reports as "everything looks fine".
How the safety works
define( 'TRACEDOWN_DISABLE', true ); to wp-config.php. It is the first thing the safe-mode file checks.wp-content/mu-plugins/tracedown-safe-mode.php over FTP, SFTP or your file manager.wp tracedown abort. The command is registered from the safe-mode file itself, so it works even while the plugin is filtered out..maintenance file is present, another must-use plugin already filters the same list, or a test write does not read back from the database, Tracedown declines to start and tells you exactly which of those it was.object-cache.php or advanced-cache.php, wp-config.php, your theme beyond a single default-theme comparison, WordPress core, or your host's configuration. Those are reported as untested scope.active_plugins approach that every tool in this category, including this one, depends on. Plugin Detective popularised searching for the conflict rather than making the user toggle plugins by hand. Both are GPL, both are worth your respect, and Tracedown differs from them in architecture rather than in ambition: no write to active_plugins, expiry evaluated on read, and a deterministic minimal-set search.
wp-content/mu-plugins/ and verifies the site still responds before handing control back to you.The session ends by itself. Expiry is evaluated every time the safe-mode file loads, so it needs no cron job, no scheduled task, no traffic and no action from you. Nothing was written to the database, so when the session ends the site is exactly as it was.
If WordPress cannot start at all, no plugin can help you, including this one. Add define( 'TRACEDOWN_DISABLE', true ); to wp-config.php or delete wp-content/mu-plugins/tracedown-safe-mode.php, and you are back to the state you were in before Tracedown was involved.
No. The filter only applies to requests carrying your signed session cookie. Tracedown also marks its own responses as uncacheable so a page cache or CDN cannot store a safe-mode response and serve it to someone else. There is a button in the session bar that opens a logged-out preview so you can see this for yourself.
No. It changes what WordPress loads for one request, for one person. The stored list of active plugins is never modified, which is also why Tracedown complies with the WordPress.org rule that a plugin may not change the activation status of other plugins.
Yes, and safe mode never applies to WP-CLI. wp tracedown status, wp tracedown abort, wp tracedown restore and wp tracedown nuke are registered from the safe-mode file so they keep working even while the plugin itself is filtered out of the active list.
Refused in this version, with a message explaining why. Network, site and subsite activation are three separate states and a partial implementation would be worse than none.