外掛說明
Media cleaners have one big problem: false positives. An image looks unused, you delete it, and a page breaks. Shift Media Library Cleanup is built around the opposite promise: when in doubt, a file is kept, and nothing is ever deleted before you had the chance to undo it.
Why it is different
- It tells you why. Every file comes with a “Why?” panel: where it is used (with a link to edit that content), or everywhere it was looked for.
- Quarantine instead of deletion. Files are moved to a private folder and hidden from the Media Library. Restore them with one click, exactly as they were, for 30 days.
- It watches for broken images. If a page still requests a quarantined file, the plugin flags it (“requested N times since quarantine”) and shows you which page asked for it.
- It checks again right before acting. Before anything is moved, the plugin re-checks content edited since the scan and searches the files’ names across your database.
- Shared files are protected. When several media items point to the same file, none of them can remove it while another one is still in use.
Where it looks for your media
- Post and page content, excerpts and featured images, for every post type
- Block editor (core blocks and media attributes of third-party blocks)
- Classic editor: images, captions,
[gallery]and[playlist]shortcodes - Elementor: page data, page and site settings (logo, favicon, backgrounds), dynamic tags
- WPBakery Page Builder and themes built on it: element attributes, background images, design options CSS
- WooCommerce: product images, product and variation galleries, category images, placeholder and email header images
- Advanced Custom Fields: image, file and gallery fields, including repeaters, flexible content, ACF blocks, term fields and options pages
- Custom fields of any plugin, user avatars, category and tag fields
- Site settings: site icon, logo, header and background images, widgets (image, gallery, text, HTML and block widgets), theme option panels
- Tables created by other plugins, such as sliders and form builders
- Your active theme, parent theme and must-use plugins: stylesheets, templates and scripts, including image IDs written in PHP
Drafts, private posts, revisions and trashed posts count as usage too: restoring any of them will never bring back a broken image.
Built to be safe for your site
- Scans run in the background in small batches, so large libraries do not hit server time limits, and they resume after an interruption.
- Scanning only reads your content: nothing in your media library changes until you choose to quarantine files.
- Data stored by other plugins is read without running any of their code.
- No data leaves your site. No tracking, no external services, no account.
Page builders not supported yet
If the plugin detects a page builder it cannot read yet (for example Divi, Bricks, Oxygen or Beaver Builder), it shows a warning and asks for an extra confirmation before quarantining files. Review those results carefully, and use the quarantine period to check your pages.
Privacy
The plugin does not send any data outside your site and does not use cookies. To detect quarantined files that are still requested, it stores the requested file path, the time and the address of the page that asked for it (without query string). It does not store IP addresses or browser details.
螢幕擷圖




安裝方式
- Install Shift Media Library Cleanup from Plugins > Add New, or upload the plugin folder to
/wp-content/plugins/. - Activate it from the Plugins screen.
- Go to Media > Media Cleanup and click Scan media library.
- Review the Not found in use tab. Open Why? on any file to see what was checked.
- Select files and click Move to quarantine. Browse your site for a few days, then let the quarantine expire or delete files permanently from the Quarantine tab.
We recommend a backup before any cleanup, as with any tool that removes files.
常見問題集
-
Does the plugin delete files automatically?
-
No. A scan never changes anything. Files only leave your Media Library when you move them to quarantine, and they are deleted permanently only after the quarantine period (30 days) or when you delete them yourself from the Quarantine tab.
-
What happens to a file in quarantine?
-
Its files are moved to a private folder inside your uploads directory and the media item is hidden from the Media Library. Its ID, title, alt text and other details are kept, so a restore brings everything back exactly as before.
-
How do I know a quarantined file is still needed?
-
When a visitor’s browser requests a quarantined file, the plugin counts it and shows the page that requested it in the Quarantine tab. This works when missing files are handled by WordPress, which is the case on most Apache servers and many nginx setups; some servers answer missing image requests on their own, and those requests cannot be seen.
-
Can the plugin miss a file that is in use?
-
It is designed to make that very unlikely, but it can happen with images loaded from places outside your site (another website, an email already sent, a mobile app) or by a plugin storing image IDs in a format nobody else uses. That is why removal always goes through the quarantine first.
-
What about files that are not in the Media Library?
-
The plugin works with media items registered in the Media Library. Files copied to the uploads folder by other means are not listed and never touched.
-
Why does the scan say it is too old?
-
Moving files to quarantine requires a scan from the last 24 hours, so recent changes to your site are taken into account. Just run a new scan: it continues in the background.
-
What happens when I uninstall the plugin?
-
Everything in quarantine is restored first, then the plugin removes its own data. If a file cannot be restored because a new file now has the same name, its data is kept so that reinstalling the plugin shows it again.
-
Does it work on multisite?
-
Yes. Each site of the network has its own scan and quarantine.
使用者評論
這個外掛目前沒有任何使用者評論。
參與者及開發者
變更記錄
1.0.1
- WPBakery: media used inside Raw HTML and Raw JS elements (stored encoded) are now found, in pages and in saved templates, and checked again before moving anything to quarantine.
- Demo importer maps and remote content caches in site settings no longer count as usage.
1.0.0
- First public release.
- Background scan of content, page builders, WooCommerce, ACF, settings, plugin tables and theme files.
- “Why?” explanations for every file.
- Quarantine with one-click restore, bulk actions, 404 detection and automatic permanent deletion after 30 days.
- Safety checks right before quarantine: scan age, content edited since the scan, file name search, shared files.
