{"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-05-09T03:10:17","modified_gmt":"2026-05-09T03:10:17","slug":"thumbnail-manager","status":"publish","type":"plugin","link":"https:\/\/ta.wordpress.org\/plugins\/thumbnail-manager\/","author":21137534,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2","stable_tag":"1.2","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":"77787b","last_updated":"2026-05-09 03:10:17","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":60,"downloads":654,"num_ratings":0,"support_threads":1,"support_threads_resolved":1,"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"},"1.2":{"tag":"1.2","author":"yoohw","date":"2026-05-09 03:10:17"}},"upgrade_notice":{"1.2":"<p>Major update introducing Recommendations and advanced Regenerate workflow.<\/p>\n\n<p>Recommended workflow:\nRecommendations \u2192 Thumbnail Sizes \u2192 Regenerate \u2192 Prune.<\/p>\n\n<hr \/>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":0},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3517019,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3517019,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3517019,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3517019,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0","1.0.1","1.1","1.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3526963,"resolution":"1","location":"assets","locale":"","width":1920,"height":1080},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3526963,"resolution":"2","location":"assets","locale":"","width":1920,"height":1080},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3526963,"resolution":"3","location":"assets","locale":"","width":1920,"height":1080},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3526963,"resolution":"4","location":"assets","locale":"","width":1920,"height":1080}},"screenshots":{"1":"Regenerate tab with progress system","2":"Recommendations tab with suggested sizes","3":"Prune Files with dry-run preview","4":"Thumbnail Sizes configuration panel"}},"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","plugin_support_reps-jacobb26"],"banners":{"banner":"https:\/\/ps.w.org\/thumbnail-manager\/assets\/banner-772x250.png?rev=3517019","banner_2x":"https:\/\/ps.w.org\/thumbnail-manager\/assets\/banner-1544x500.png?rev=3517019","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/thumbnail-manager\/assets\/icon-128x128.png?rev=3517019","icon_2x":"https:\/\/ps.w.org\/thumbnail-manager\/assets\/icon-256x256.png?rev=3517019","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/thumbnail-manager\/assets\/screenshot-1.png?rev=3526963","caption":"Regenerate tab with progress system"},{"src":"https:\/\/ps.w.org\/thumbnail-manager\/assets\/screenshot-2.png?rev=3526963","caption":"Recommendations tab with suggested sizes"},{"src":"https:\/\/ps.w.org\/thumbnail-manager\/assets\/screenshot-3.png?rev=3526963","caption":"Prune Files with dry-run preview"},{"src":"https:\/\/ps.w.org\/thumbnail-manager\/assets\/screenshot-4.png?rev=3526963","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. Recommendations<\/strong>\n- Get recommendations for commonly safe thumbnail sizes\n- Highlights WordPress core and WooCommerce-related sizes\n- Helps identify likely unused custom sizes\n- Quickly apply suggested sizes before regenerating or pruning<\/p>\n\n<p><strong>6. 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>4-tab UI: <strong>Regenerate<\/strong>, <strong>Recommendations<\/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<li>Recommendation engine for safer cleanup decisions<\/li>\n<li>WooCommerce-aware protected size detection<\/li>\n<li>Apply recommended sizes with one click<\/li>\n<\/ul>\n\n\n\n<h3>Usage<\/h3>\n\n<h3>Recommended Workflow<\/h3>\n\n<ol>\n<li>Go to <strong>Recommendations<\/strong><\/li>\n<li>Scan media usage suggestions<\/li>\n<li>Apply recommended sizes<\/li>\n<li>Go to <strong>Thumbnail Sizes<\/strong><\/li>\n<li>Save changes and run regenerate<\/li>\n<li>Review and clean old thumbnails in <strong>Prune Files<\/strong><\/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=\"are%20recommendations%20fully%20automatic%3F\"><h3>Are Recommendations fully automatic?<\/h3><\/dt>\n<dd><p>No. Recommendations are based on protected\/core thumbnail sizes and common usage patterns. Always review suggestions and use Dry-run before deleting 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.2 (May 9, 2026)<\/h4>\n\n<ul>\n<li>\u2728 Added <strong>Recommendations<\/strong> tab for safer thumbnail cleanup decisions<\/li>\n<li>\u2728 Added recommendation engine for WordPress core and WooCommerce-related sizes<\/li>\n<li>\u2728 Added one-click \u201cApply recommended sizes\u201d<\/li>\n<li>\u2728 Added improved workflow: Recommendations \u2192 Sizes \u2192 Regenerate \u2192 Prune<\/li>\n<li>\u2728 Added scoped regenerate processing:\n\n<ul>\n<li>All media<\/li>\n<li>Current year<\/li>\n<li>Specific uploads folders<\/li>\n<li>Specific attachment IDs<\/li>\n<\/ul><\/li>\n<li>\u2728 Added \u201cForce regenerate all\u201d option<\/li>\n<li>\u2728 Added \u201cOnly generate missing thumbnails\u201d optimization<\/li>\n<li>\u2728 Added \u201cSave changes and run regenerate\u201d workflow<\/li>\n<li>\u2728 Added Regenerate as the default tab<\/li>\n<li>\ud83d\udd27 Improved regenerate batching and UI progress handling<\/li>\n<li>\ud83d\udd27 Improved AJAX architecture and tab interaction handling<\/li>\n<li>\ud83d\udd27 Improved overall media optimization workflow for large sites<\/li>\n<\/ul>\n\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:\/\/ta.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/252904","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ta.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ta.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ta.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=252904"}],"author":[{"embeddable":true,"href":"https:\/\/ta.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/yoohw"}],"wp:attachment":[{"href":"https:\/\/ta.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=252904"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ta.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=252904"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ta.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=252904"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ta.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=252904"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ta.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=252904"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ta.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=252904"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}