Decide exactly what updates and when
Disable Updates lets you hold back WordPress core, its translations, and any individual plugin or theme, so nothing updates or nags about updating until you decide it should.
- Block core version updates and core translation downloads separately.
- Choose exactly which plugins and themes stay held back.
- Control plugin and theme translation updates independently too.
- Notifications disappear right along with the update itself.
WordPress Core
Plugins
What does Disable Updates do?
When the disable_updates module is active, TOWP_Disable_Updates filters WordPress's own update transients, pre_site_transient_update_core, site_transient_update_plugins and site_transient_update_themes, to strip out whatever's been selected to hold back, and vetoes the matching auto_update_* filters so nothing updates silently in the background either. Core version updates, core translations, and each plugin and theme individually, along with their own translation files, can all be controlled separately; because anything held back moves into the transient's no_update list rather than simply getting deleted, WordPress registers it as checked and current rather than leaving it in an ambiguous state.
Updating shouldn't be something that just happens overnight
Since updates arrive on WordPress's own schedule, a site has no built-in way to say "not yet" to just one plugin.
Core, plugins and themes all update on their own schedule
WordPress checks for and can automatically apply updates to core, plugins and themes without asking, which works fine until an update changes something a site actually depended on.
There's no built-in way to hold specific things back
A site that wants to update deliberately, on a staging copy first or during a planned maintenance window, has no native way to say "not this plugin, not yet" without disabling automatic updates everywhere at once.
Held back exactly where you choose
The module gives granular control over what updates and what doesn't, all the way down to individual plugins and their translation files.
Core, held back on its own
Stop WordPress core from checking for or installing version updates, independent of anything else.
Plugins and themes, one at a time
Choose exactly which plugins and themes stay at their current version, leaving everything else to update normally.
Translations, controlled separately
Hold back language file updates for core, or for any individual plugin or theme, independently of their version updates.
Granularity down to one plugin's translations
Every capability below is present in the supplied PHP class and its settings registration.
Update checks and installs blocked
pre_site_transient_update_core clears any pending core update from the transient, while forcing auto_update_core to false closes both the notification and the silent background update.
Language file updates held back separately
Core translation entries get stripped from the update transient, and automatic translation updates for core are vetoed independently of the version update setting.
Held back individually, by slug
The module removes each selected plugin from the pending-updates list, moves it into the no_update list, and vetoes its own automatic update too.
The same granularity for themes
Each selected theme gets the identical treatment: removed from pending updates, marked as current, and excluded from automatic updates.
A separate column of control
Translation updates for individual plugins and themes can be held back independently of their version updates, matching the two-column layout in the settings screen.
Marked current, not just hidden
A held-back item moves into the transient's no_update property rather than simply disappearing, so WordPress registers it as checked and current.
Where deliberate updating helps most
The module supports any workflow where updates happen on purpose, not by default.
Staging-first update workflows
Hold plugins and themes at their current version until an update has passed testing on a staging copy of the site.
Scheduled maintenance windows
Keep everything at its current version between planned update windows, rather than letting changes land whenever WordPress checks.
A plugin or theme with a known problematic update
Hold back one specific plugin that's had update issues before, while letting everything else on the site continue updating normally.
Precise control, not a blanket switch
The module combines fine-grained selection with proper suppression of both notifications and silent updates.
Filters existing data, adds no requests
The verified implementation reuses WordPress's own update-check data rather than duplicating any of it.
Filters existing transients, no extra requests
The module works entirely by filtering WordPress's own update-check data; it doesn't add any additional API calls or database queries of its own.
No effect on items not selected
Anything not explicitly held back passes through the filters untouched, so normal updates for everything else aren't slowed down.
A handful of array operations
Each filter callback does simple array filtering and lookups against the saved settings, adding negligible processing time.
An honest trade-off, stated plainly
The code separates concerns carefully and never hides the responsibility that comes with holding an update back.
An explicit, documented trade-off
The settings screen itself states plainly that anything held back stays at its current version, and tracking what needs updating becomes the site owner's responsibility.
Administrator-only configuration
Only an administrator with access to TheOneWP settings can choose what gets held back.
Version and translation control kept separate
Since the two operate independently, holding back a translation update doesn't silently also hold back a security-relevant version update, and vice versa.
No effect on manual updates through wp-admin
An administrator can still manually trigger an update for anything held back; the module only suppresses the automatic check and notification.
Built around every native WordPress update transient and filter
The supplied code integrates through APIs present in WordPress core; this page makes no compatibility claim beyond the verified implementation.
pre_site_transient_update_core and auto_update_core
The standard WordPress filters for intercepting the core update check and controlling core auto-updates.
site_transient_update_plugins and site_transient_update_themes
The same transients WordPress itself populates with pending plugin and theme updates, filtered here per selection.
auto_update_plugin, auto_update_theme, auto_update_translation
The three filters WordPress core checks before applying any automatic background update, used here to veto updates for held-back items specifically.
TheOneWP versus common alternatives
Compare the verified Disable Updates implementation with a typical wp-config.php constant.
| Capability | TheOneWP Disable Updates | Other common solutions |
|---|---|---|
| Holding back core updates | Version and translations controlled separately | Usually an all-or-nothing constant in wp-config.php |
| Per-plugin and per-theme control | Individually selectable, with translations too | Rarely available without a dedicated plugin |
| Silent background updates | Vetoed alongside the visible notification | Often only the notification is addressed, not auto-updates |
| Transient handling | Marked as checked and current, not left ambiguous | A naive filter can leave WordPress's update state inconsistent |
| Administration | One settings screen for core, every plugin and theme | Requires a mix of constants, snippets and separate plugins |
Take control of updates in four steps
Since responsibility shifts to the site owner, decide deliberately what actually needs holding back.
Enable Disable Updates
Activate the module from the TheOneWP settings.
Decide on core
Hold back core version updates, core translations, or both, based on how the site's update schedule works.
Select specific plugins and themes
Check the individual plugins and themes that should stay at their current version, and their translations if needed.
Update deliberately
Apply held-back updates manually, on staging first if that's the workflow, whenever the site is actually ready.
Hold back deliberately, track what's paused
Since tracking becomes the site owner's job, a little discipline keeps held-back updates from being forgotten.
Hold back only what genuinely needs it
Selecting everything by default defeats much of the value of staying current; use this for specific, deliberate exceptions.
Track what's held back somewhere
Since the settings screen itself notes that tracking becomes the site owner's responsibility, keep a record of what's paused and why.
Revisit held-back items regularly
A plugin held back during a past issue may be safe to update again; check periodically rather than leaving it paused indefinitely.
Prioritize security-relevant updates
Be especially deliberate about holding back anything with a known security fix; test and apply those as quickly as the workflow allows.
Avoid habits that create real risk
Holding back updates is powerful, and the same power creates a real responsibility to track it.
Holding back updates and forgetting about them
An update paused for a good reason during a busy week can stay paused far longer than intended without a way to track it.
Assuming a translation toggle also affects the version
Because version updates and translation updates operate independently, disabling one doesn't touch the other.
Leaving security-relevant plugins held back too long
A plugin paused for compatibility reasons can also be the one that needs a security update the most; check held-back items regularly.
Disable Updates FAQ
These answers come directly from the verified class and its settings registration.
What does Disable Updates do?
It lets an administrator hold back WordPress core, core translations, and individual plugins, themes and their translations, suppressing both the update notification and any silent automatic update.
Does this stop me from updating manually?
No. An administrator can still trigger an update manually through wp-admin for anything held back; the module only suppresses the automatic check and notification.
Can I hold back a plugin's version updates but keep its translations current?
Yes. Each plugin and theme lets you control version updates and translation updates independently.
Does holding back core translations affect core version updates?
No. Core version updates and core translation updates are two separate settings, controlled by different filters.
Does this stop WordPress from auto-updating something in the background?
Yes. The module vetoes the relevant auto_update filters for anything held back, closing the silent background update path as well as the visible one.
How does the module know which plugin a saved setting refers to?
It converts each plugin's file path into a canonical slug, the same identifier the settings screen used when saving the choice.
What happens to something held back in WordPress's own update count?
It moves into the update transient's no_update list, so WordPress registers it as checked and current rather than leaving it in an inconsistent state.
Is there a risk to holding back updates long-term?
Yes. The settings screen itself notes that anything held back stays at its current version, so tracking what still needs updating becomes the site owner's responsibility.
Can I hold back an entire category, like all plugins, at once?
Each plugin and theme is selected individually; there's no single switch for "all plugins" or "all themes" as a category.
Who can change what's held back?
Only an administrator with access to the TheOneWP settings screen.
Stop letting updates happen overnight.Choose exactly what updates, and when.
Use Disable Updates to hold back core, individual plugins, themes and their translations, until you're ready to update deliberately.

