Overview
When WordPress thinks a plugin has an update, the “reinstall” flow becomes a one‑click path. This plugin safely fabricates those update notices for all installed plugins (except itself), pointing the download package to the official WordPress.org repository. Deactivate it and the fake notices disappear immediately.
Zero tracking • Tiny footprint • Safe fallbacks • Plays nice with your theme and other plugins.
Why You’ll Like It
No bloat
Single‑purpose helper for fast cleanup/repairs—especially after a compromised site or messy update.
Fast workflow
Reinstall everything from the native Updates screen—no manual zip juggling.
Safe by design
Only touches the update transient and uses .org package URLs. Deactivation clears its changes.
Features (v1.1)
- Injects harmless “update available” entries for all installed plugins (skips itself).
- Packages point to official WordPress.org download URLs for each plugin slug.
- Respects your site version and sets
tested
accordingly. - On deactivation, immediately deletes the
update_plugins
transient to remove fake notices. - Displays a persistent admin warning while active so you remember to turn it off.
What It Touches
add_filter('site_transient_update_plugins', 'force_all_plugin_updates');
register_deactivation_hook(__FILE__, 'force_reinstall_on_deactivate');
Installation
- Download the zip: force-reinstall-update.zip
- WordPress admin → Plugins → Add New → Upload Plugin → choose the zip → Install Now.
- Click Activate.
macOS tip: Hold Option while clicking if your browser tries to open instead of download.
Usage
- Go to Dashboard → Updates. All plugins will appear to have an update available.
- Reinstall the plugins you want. WordPress will fetch the latest package from WordPress.org.
- When finished, deactivate this helper to clear the fake notices.
Download
One‑file simplicity. Makes bulk reinstallation painless.
Changelog
1.1
- Added persistent admin notice while active.
- Copy and documentation improvements.
1.0
- Initial release: injects update responses and clears on deactivate.
FAQ
Does it modify plugin files?
No. It only edits the in‑memory update metadata that WordPress uses to decide whether to show an update badge.
Is it safe to leave active?
It won’t hurt anything, but you should deactivate it when finished to avoid confusion from perpetual update badges.
Can I see the code?
Absolutely—expand the source below.
View PHP source (v1.1)
response)){ return $transient; }
if(!function_exists('get_plugins')){ require_once ABSPATH.'wp-admin/includes/plugin.php'; }
$all_plugins = get_plugins();
if(empty($all_plugins)){ return $transient; }
$this_plugin_basename = plugin_basename(__FILE__);
foreach($all_plugins as $plugin_basename => $plugin_data){
if($plugin_basename === $this_plugin_basename){ continue; }
$slug = dirname($plugin_basename);
if($slug === '.') { $slug = basename($plugin_basename, '.php'); }
$o = new stdClass();
$o->id = $plugin_basename;
$o->slug = $slug;
$o->plugin = $plugin_basename;
$o->new_version = '999.999';
$o->url = 'https://wordpress.org/plugins/' . $slug . '/';
$o->package = 'https://downloads.wordpress.org/plugin/' . $slug . '.latest-stable.zip';
$o->tested = get_bloginfo('version');
$transient->response[$plugin_basename] = $o;
}
return $transient;
}
add_filter('site_transient_update_plugins', 'force_all_plugin_updates');
function force_reinstall_admin_notice(){
echo '' .
__('The Force Reinstall / Update plugin is active. Deactivate after reinstalling.', 'force-reinstall') .
'
';
}
add_action('admin_notices','force_reinstall_admin_notice');
function force_reinstall_on_deactivate(){ delete_site_transient('update_plugins'); }
register_deactivation_hook(__FILE__, 'force_reinstall_on_deactivate');
?>
Disclaimers
- No warranty: Provided “as is.” Test in your environment.
- Confusion risk: While active, update badges are intentionally fake. Deactivate when finished.
- Privacy: No external tracking. Uses only WordPress.org package URLs.