{"id":252904,"date":"2025-10-05T07:58:28","date_gmt":"2025-10-05T07:58:28","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/prune-thumbnails\/"},"modified":"2026-03-19T04:47:53","modified_gmt":"2026-03-19T04:47:53","slug":"thumbnail-manager","status":"publish","type":"plugin","link":"https:\/\/ast.wordpress.org\/plugins\/thumbnail-manager\/","author":21137534,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.1","stable_tag":"1.1","tested":"6.9.4","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"Thumbnail Manager","header_author":"YoOhw.com","header_description":"Clean up unused thumbnails with progress; find orphan -WxH files; disable sizes for future uploads.","assets_banners_color":"51565d","last_updated":"2026-03-19 04:47:53","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/thumbnail-manager","header_author_uri":"https:\/\/yoohw.com","rating":0,"author_block_rating":0,"active_installs":40,"downloads":434,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"yoohw","date":"2025-10-05 07:58:14"},"1.0.1":{"tag":"1.0.1","author":"yoohw","date":"2025-12-03 02:11:14"},"1.1":{"tag":"1.1","author":"yoohw","date":"2026-03-19 04:47:53"}},"upgrade_notice":{"1.2":"<p>Major update introducing Regenerate feature.<br \/>\nRecommended workflow: Disable sizes \u2192 Regenerate \u2192 Prune.<\/p>\n\n<hr \/>"},"ratings":[],"assets_icons":{"icon.svg":{"filename":"icon.svg","revision":3373055,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3373055,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3373055,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0","1.0.1","1.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3486134,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3486134,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3486134,"resolution":"3","location":"assets","locale":""}},"screenshots":{"1":"Regenerate tab with progress system","2":"Prune Files with dry-run preview","3":"Thumbnail Sizes configuration panel"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[3786,163,84,5995,2956],"plugin_category":[50],"plugin_contributors":[223812],"plugin_business_model":[],"class_list":["post-252904","plugin","type-plugin","status-publish","hentry","plugin_tags-cleanup","plugin_tags-images","plugin_tags-media","plugin_tags-regenerate","plugin_tags-thumbnails","plugin_category-media","plugin_contributors-yoohw","plugin_committers-yoohw"],"banners":{"banner":"https:\/\/ps.w.org\/thumbnail-manager\/assets\/banner-772x250.png?rev=3373055","banner_2x":"https:\/\/ps.w.org\/thumbnail-manager\/assets\/banner-1544x500.png?rev=3373055","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/thumbnail-manager\/assets\/icon.svg?rev=3373055","icon":"https:\/\/ps.w.org\/thumbnail-manager\/assets\/icon.svg?rev=3373055","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/thumbnail-manager\/assets\/screenshot-1.png?rev=3486134","caption":"Regenerate tab with progress system"},{"src":"https:\/\/ps.w.org\/thumbnail-manager\/assets\/screenshot-2.png?rev=3486134","caption":"Prune Files with dry-run preview"},{"src":"https:\/\/ps.w.org\/thumbnail-manager\/assets\/screenshot-3.png?rev=3486134","caption":"Thumbnail Sizes configuration panel"}],"raw_content":"<!--section=description-->\n<p>Thumbnail Manager is a powerful tool to take full control over your WordPress image system.<\/p>\n\n<p>Instead of letting themes and plugins generate dozens of unnecessary thumbnails, you can now:<\/p>\n\n<ul>\n<li><strong>Control which sizes are created<\/strong><\/li>\n<li><strong>Remove unused thumbnails safely<\/strong><\/li>\n<li><strong>Regenerate only what you actually need<\/strong><\/li>\n<\/ul>\n\n<p>All in one place.<\/p>\n\n\n\n<h3>\ud83d\ude80 What it does<\/h3>\n\n<p><strong>1. Regenerate Thumbnails (NEW)<\/strong>\n- Regenerate thumbnails based on your current enabled sizes\n- Works in batches with progress tracking (no timeout issues)\n- Perfect after disabling unwanted sizes\n- Ensures your Media Library stays consistent and optimized<\/p>\n\n<p><strong>2. Prune Unused Thumbnails<\/strong>\n- Select sizes you want to <strong>KEEP<\/strong>\n- Automatically detect and remove all other generated thumbnails\n- Supports:\n  - Registered sizes\n  - Orphan <code>-WxH<\/code> files\n  - <code>.webp<\/code>, <code>.bak<\/code>, <code>@2x<\/code>, <code>-1<\/code> variants<\/p>\n\n<p><strong>3. Orphan File Discovery<\/strong>\n- Detect leftover thumbnails no longer registered\n- Clean legacy sizes from old themes\/plugins\n- Optional aggressive cleanup mode<\/p>\n\n<p><strong>4. Disable Sizes for Future Uploads<\/strong>\n- Prevent unnecessary thumbnails from being generated\n- Reduce storage usage going forward\n- Keeps your system lean and predictable<\/p>\n\n<p><strong>5. Scoped Processing<\/strong>\n- Limit operations to specific folders (year\/month)\n- Safer testing on large Media Libraries<\/p>\n\n\n\n<h3>\u274c What it does NOT do<\/h3>\n\n<ul>\n<li>It <strong>does NOT delete original full-size images<\/strong><\/li>\n<li>It <strong>does NOT modify image quality or compression<\/strong><\/li>\n<li>It <strong>does NOT replace image optimization plugins<\/strong><\/li>\n<li>It does not automatically run actions without your confirmation<\/li>\n<\/ul>\n\n\n\n<h3>\ud83c\udfaf Who is it for?<\/h3>\n\n<ul>\n<li>WooCommerce stores with heavy image usage<\/li>\n<li>Sites using multiple themes\/page builders<\/li>\n<li>Developers cleaning legacy media bloat<\/li>\n<li>Anyone hitting disk limits or slow backups<\/li>\n<\/ul>\n\n\n\n<h3>Features<\/h3>\n\n<ul>\n<li>3-tab UI: <strong>Regenerate<\/strong>, <strong>Prune Files<\/strong>, <strong>Thumbnail Sizes<\/strong><\/li>\n<li>Batch processing with AJAX (no timeouts)<\/li>\n<li>Dry-run preview before deletion<\/li>\n<li>Smart orphan detection<\/li>\n<li>Progress bars + live feedback<\/li>\n<li>Future upload size control<\/li>\n<li>Multisite compatible (run per site)<\/li>\n<\/ul>\n\n\n\n<h3>Usage<\/h3>\n\n<h3>Regenerate (Recommended flow)<\/h3>\n\n<ol>\n<li>Go to <strong>Thumbnail Sizes<\/strong><\/li>\n<li>Disable unwanted sizes<\/li>\n<li>Click <strong>Save changes and run regenerate<\/strong><\/li>\n<li>Let the system rebuild only the sizes you want<\/li>\n<\/ol>\n\n\n\n<h3>Prune Files<\/h3>\n\n<ol>\n<li>Select sizes to <strong>KEEP<\/strong><\/li>\n<li>Run <strong>Dry-run<\/strong> first<\/li>\n<li>Review results<\/li>\n<li>Switch to <strong>Delete<\/strong> and execute<\/li>\n<\/ol>\n\n\n\n<h3>Thumbnail Sizes<\/h3>\n\n<ul>\n<li>Enable\/disable sizes for future uploads<\/li>\n<li>Does NOT affect existing images until prune\/regenerate is used<\/li>\n<\/ul>\n\n\n\n<h3>Technical Notes<\/h3>\n\n<ul>\n<li>Uses <code>intermediate_image_sizes_advanced<\/code> to control generation<\/li>\n<li>Uses AJAX batching to avoid server timeout<\/li>\n<li>Safe file targeting via pattern matching<\/li>\n<li>Requires <code>manage_options<\/code> capability<\/li>\n<\/ul>\n\n\n\n<h3>Privacy<\/h3>\n\n<p>This plugin does not collect or transmit any personal data.<br \/>\nAll operations are performed locally on your server.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/<\/code> or install via WordPress.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to <strong>Tools \u2192 Thumbnail Manager<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20delete%20my%20original%20images%3F\"><h3>Will this delete my original images?<\/h3><\/dt>\n<dd><p>No. Only generated thumbnails are affected.<\/p><\/dd>\n<dt id=\"should%20i%20back%20up%20first%3F\"><h3>Should I back up first?<\/h3><\/dt>\n<dd><p>Yes. Always back up before deleting files.<\/p><\/dd>\n<dt id=\"what%20is%20%E2%80%9Corphan%20discovery%E2%80%9D%3F\"><h3>What is \u201cOrphan discovery\u201d?<\/h3><\/dt>\n<dd><p>It detects thumbnails on disk that are no longer registered in WordPress.<\/p><\/dd>\n<dt id=\"when%20should%20i%20use%20regenerate%3F\"><h3>When should I use Regenerate?<\/h3><\/dt>\n<dd><p>After changing enabled sizes \u2014 to rebuild correct thumbnails.<\/p><\/dd>\n<dt id=\"does%20it%20unregister%20sizes%3F\"><h3>Does it unregister sizes?<\/h3><\/dt>\n<dd><p>No. It prevents generation using filters instead.<\/p><\/dd>\n<dt id=\"is%20it%20safe%20for%20large%20sites%3F\"><h3>Is it safe for large sites?<\/h3><\/dt>\n<dd><p>Yes. Uses batch processing and folder scoping.<\/p>\n\n<\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1 (Mar 19, 2026)<\/h4>\n\n<ul>\n<li>\u2728 Added <strong>Regenerate Thumbnails<\/strong> feature with batch processing and progress UI<\/li>\n<li>\u2728 Added <strong>\u201cSave changes and run regenerate\u201d<\/strong> workflow<\/li>\n<li>\u2728 Set <strong>Regenerate tab as default entry<\/strong><\/li>\n<li>\u2728 Improved UX flow between Sizes \u2192 Regenerate \u2192 Prune<\/li>\n<li>\u2728 Added automatic trigger for regenerate after saving sizes<\/li>\n<li>\u2728 Improved admin JS handling for multi-tab interaction<\/li>\n<li>\ud83d\udd27 Refactored internal handlers for regeneration logic<\/li>\n<li>\ud83d\udd27 Improved performance for large media libraries<\/li>\n<\/ul>\n\n<h4>1.0.1 (Dec 3, 2025)<\/h4>\n\n<ul>\n<li>Added full translation support<\/li>\n<li>Improved UI labels and formatting<\/li>\n<li>Accessibility improvements<\/li>\n<\/ul>\n\n<h4>1.0 (Oct 5, 2025)<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Prune Files with dry-run and batch deletion<\/li>\n<li>Orphan detection<\/li>\n<li>Disable sizes for future uploads<\/li>\n<\/ul>","raw_excerpt":"Clean, control, and regenerate thumbnails with precision \u2014 remove unused sizes, prevent bloat, and rebuild what matters.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/252904","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=252904"}],"author":[{"embeddable":true,"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/yoohw"}],"wp:attachment":[{"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=252904"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=252904"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=252904"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=252904"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=252904"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=252904"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}