[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fxtlLGIeMhpKcvp1eOuTkytS3KqaQmzQMLB2XetmKS4s":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"vulnerabilities":31,"developer":32,"crawl_stats":29,"alternatives":38,"analysis":126,"fingerprints":336},"upload-janitor","Upload Janitor","0.2","michaeltyson","https:\u002F\u002Fprofiles.wordpress.org\u002Fmichaeltyson\u002F","\u003Cp>Reclaim disk space and clean up your uploads folder by deleting old uploads you are no longer linking to.\u003C\u002Fp>\n\u003Cp>This plugin will identify unused files within your uploads folder, and give you the option of archiving then deleting\u003Cbr \u002F>\nsome or all of these files.\u003C\u002Fp>\n\u003Cp>Before any action is taken, Upload Janitor will automatically make a ‘tar’ archive of all files to be\u003Cbr \u002F>\nerased, including their original paths, so you can restore if necessary.\u003C\u002Fp>\n\u003Ch3>How does it work?\u003C\u002Fh3>\n\u003Cp>This plugin inspects every file within the uploads folder.  For each file, it searches pages or posts that\u003Cbr \u002F>\nreference the file.  That is, the plugin searches for the part of each file’s path that comes after the path\u003Cbr \u002F>\nto the uploads folder, such as \u003Ccode>2010\u002F01\u002Fmy great but forgotten image.jpg\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>The path is searched as-is, as well as URL-encoded with ‘%20’ for spaces, and the same with ‘+’ for spaces –\u003Cbr \u002F>\n    2010\u002F01\u002Fmy%20great%20but%20forgotten%20image.jpg and \u003Ccode>2010\u002F01\u002Fmy+great+but+forgotten+image.jpg\u003C\u002Fcode>.  HTML entity-encoded\u003Cbr \u002F>\nforms of all of these are also searched.\u003C\u002Fp>\n\u003Cp>If no matches are found, then the file is considered unused.\u003C\u002Fp>\n\u003Cp>Note that this plugin plays it safe, and does not distinguish between older post\u002Fpage revisions and the current version\u003Cbr \u002F>\nof a post\u002Fpage.  If a revision references a file, the file will be considered still in use.\u003C\u002Fp>\n\u003Ch3>Restoring\u003C\u002Fh3>\n\u003Cp>If something goes wrong, you can always restore.  If you have shell access to your site, this is easy.  Simply log in,\u003Cbr \u002F>\nnavigate to your \u003Ccode>wp-content\u002Fplugins\u003C\u002Fcode> directory, and locate the Upload Janitor archive – it will look like\u003Cbr \u002F>\n    upload_janitor_archive_YYYY-mm-dd.tar.gz.  Then, type:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>    tar zxf \u003Carchive name> .\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>This will restore all files within the archive.\u003C\u002Fp>\n\u003Cp>If you do not have shell access to your server, you will have to download the archive, extract it, then upload the\u003Cbr \u002F>\ncontents back to your server.  The archive will be accessible at http:\u002F\u002Fyour-blog.com\u002Fwp-content\u002Fuploads\u002Fupload_janitor_archive_YYYY-mm-dd.tar.gz\u003C\u002Fp>\n","Clean up unused images and other files from your uploads folder.",50,8647,80,4,"2010-01-20T15:00:00.000Z","2.9.2","2.6","",[20,21,22,23,24],"clean","delete","files","unused","upload","http:\u002F\u002Fatastypixel.com\u002Fblog\u002Fwordpress\u002Fplugins\u002Fupload-janitor","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fupload-janitor.0.2.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":33,"total_installs":34,"avg_security_score":27,"avg_patch_time_days":35,"trust_score":36,"computed_at":37},3,160,30,84,"2026-04-05T12:14:16.242Z",[39,58,80,97,113],{"slug":40,"name":41,"version":42,"author":43,"author_profile":44,"description":45,"short_description":46,"active_installs":28,"downloaded":47,"rating":28,"num_ratings":28,"last_updated":48,"tested_up_to":49,"requires_at_least":50,"requires_php":18,"tags":51,"homepage":18,"download_link":56,"security_score":57,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"pro-uploads-cleaner","Pro Uploads Cleaner","1.0.0","Hemant Jodhani","https:\u002F\u002Fprofiles.wordpress.org\u002Fhemantjodhani\u002F","\u003Cp>Pro Uploads Cleaner compares your WordPress Media Library with the uploads folder and deletes files that don’t match, keeping your site clean and optimized.\u003C\u002Fp>\n","Scan and clean unused images from your WordPress uploads folder safely.",514,"2026-02-05T16:05:00.000Z","6.9.4","5.0",[52,53,54,55],"cleaner","delete-unused-images","media-library","uploads","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpro-uploads-cleaner.1.0.0.zip",100,{"slug":59,"name":60,"version":61,"author":62,"author_profile":63,"description":64,"short_description":65,"active_installs":66,"downloaded":67,"rating":13,"num_ratings":35,"last_updated":68,"tested_up_to":69,"requires_at_least":70,"requires_php":71,"tags":72,"homepage":76,"download_link":77,"security_score":78,"vuln_count":33,"unpatched_count":28,"last_vuln_date":79,"fetched_at":30},"media-hygiene","Media Hygiene: Remove or Delete Unused Images and More!","4.0.1","slui","https:\u002F\u002Fprofiles.wordpress.org\u002Fslui\u002F","\u003Cp>The Media Hygiene plugin removes unused media from the WordPress library to free up space, reduce clutter, and improve server performance. With features like bulk delete and deep folder scanning, it’s a must-have for finding and deleting unused images and media.\u003C\u002Fp>\n\u003Ch3>Introducing Media Hygiene\u003C\u002Fh3>\n\u003Cp>Introducing the Media Hygiene plugin – the ideal solution for optimizing your WordPress media library! With this powerful plugin, you can quickly and easily remove all unused images, reducing clutter, and freeing up valuable server space. This plugin is a must-have for anyone looking to delete unused images in WordPress or remove unused images from the media library.\u003C\u002Fp>\n\u003Cp>Media Hygiene is fully compatible with major WordPress builders, including plugins like WooCommerce, custom fields and posts plugin, sliders, SEO, and more – making it versatile and convenient for all types of WordPress users. Unique features like “One shot delete” and “One-shot download” allow you to bulk delete media and download all images from the WordPress media library make it easy to keep your media library organized and up-to-date.\u003C\u002Fp>\n\u003Cp>Making offsite backups? Reduce the time and cost of disk space with a smaller backup file size.\u003C\u002Fp>\n\u003Cp>Say goodbye to a cluttered and disorganized WordPress media library, and hello to a cleaner, more efficient WordPress site! Whether you’re an agency, blogger, photographer, or business owner, Media Hygiene is the perfect tool for keeping your media library in tip-top shape.\u003C\u002Fp>\n\u003Cp>Get it now and keep your WordPress site super clean!\u003C\u002Fp>\n\u003Ch3>Some use cases for website owners\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\n\u003Cp>Unable to keep track of unused media files in the media library.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Uploading the same images in different sizes to figure out optimal size and forgetting which one was actually used.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Switching out an image in a post with another and can’t find it media library file.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Updating the logo with a new version and don’t want the old one to be indexed by Google.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Images included with purchased theme but never deleted after site was launched.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>After a website was redesigned or rebranded, there may a number of old images or media files no longer in use.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Before migrating to a new hosting provider, cleaning up the media library may make it a smoother and faster migration process.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Getting a warning from your hosting provider that you are hitting the storage limit, make your backups smaller.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>You have guest posts or contributors who may have left behind a number of images.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Changing your product listings or discontinuing products in e-commerce sites may mean images are left unused.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>After trying out a theme, deactivation of theme may leave behind media files.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>How is it Different?\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fmediahygiene.com\" rel=\"nofollow ugc\">Media Hygiene Pro\u003C\u002Fa> scans the entire website using a number of different techniques. One way is to “visualize images\u002Fmedia in page source code” to confirm the existence of a media file even when builders\u002Fplugins\u002Fthemes use specialized custom posts to display their widgets on-screen.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>File Types:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Media Hygiene will recognize most if not all major file types stored in the WordPress media library. This includes but not limited to PDF, jpg, png, gif, mp4, mp3, csv, zip, rar, and txt files. We also cover alternative extension spelling such as jpeg.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Standard Features:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\n\u003Cp>Dashboard – shows list of all unused media by occupied space and by type.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Notifications – get email notifications when new files have been uploaded and not scanned on a specific schedule (daily, weekly, bi-weekly, monthly, quarterly)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Site builder compatibility – works with all major site builders such as Elementor (see list below).\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Whitelist – keep files safe from deletion. Perfect for files linked to from off-site sources.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Filtering – files by name and date.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Backup – download unused media file individually or by page.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Delete – remove files individually or by page.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Scan – scanning process for all media files not linked to any page\u002Fpost or other theme settings.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Support – only through WordPress repository.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Changelog\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fmediahygiene.com\u002Fchangelog\u002F\" rel=\"nofollow ugc\">Check latest here\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch3>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fmediahygiene.com\u002Fcompatibilities\u002F\" rel=\"nofollow ugc\">Compatibility\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fh3>\n\u003Cp>Please check our website to see a completely list of compatible plugins\u002Fthemes.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>Gutenberg – Standard\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Elementor Basic – Standard\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Bricks (builder)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Divi (builder)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>WP Bakery Page Builder (builder)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Beaver Builder (builder)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Visual Composer (builder)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Avada (theme)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Enfold (theme)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Flatsome (theme)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>More to come…\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fmediahygiene.com\" rel=\"nofollow ugc\">Pro\u003C\u002Fa>\u003C\u002Fstrong> (available now)\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\n\u003Cp>Customer Support – directly from the plugin – Pro\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Faster scanning through the use of WP-CLI (WordPress command line interface)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Unique scanning process for multiple page builders with one click\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Advanced Filtering – Pro\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Media Filter by Year\u003C\u002Fli>\n\u003Cli>Media Filter by Type (jpg, png, gif, wmv, mp4, etc.)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>One Shot Download (all files)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>One Shot Removal (all files)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Folder Scan (sub-folder scanning coming soon!)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Woocommerce\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Custom Post Types\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>SEO Plugins\u003C\u002Fp>\n\u003Cul>\n\u003Cli>All in One\u003C\u002Fli>\n\u003Cli>Yoast\u003C\u002Fli>\n\u003Cli>SEO Press\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Custom Fields Plugins – Pro\u003C\u002Fp>\n\u003Cul>\n\u003Cli>ACF\u003C\u002Fli>\n\u003Cli>Pods\u003C\u002Fli>\n\u003Cli>Custom Field Suite\u003C\u002Fli>\n\u003Cli>Custom Post Suits\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Sliders\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Meta Slider\u003C\u002Fli>\n\u003Cli>Slider Revolution\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fmediahygiene.com\" rel=\"nofollow ugc\">Pro\u003C\u002Fa>\u003C\u002Fstrong> (coming soon)\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\n\u003Cp>Custom Fields Plugins – Pro\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Jet Engine (coming soon)\u003C\u002Fli>\n\u003Cli>Meta Box (coming soon)\u003C\u002Fli>\n\u003Cli>CPT UI (coming soon)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Remote server backup and restore – Pro (coming soon)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Scheduled Scans – Pro (coming soon)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Custom Email Notifications – Pro (coming soon)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>WPML \u002F Weglot \u002F TranslatePress (coming soon)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n","The Media Hygiene plugin removes unused media from the WordPress library to free up space, reduce clutter, and improve server performance.",5000,43350,"2025-05-01T11:25:00.000Z","6.8.5","5.3","7.4",[20,21,73,74,75],"images","remove","unused-media","https:\u002F\u002Fmediahygiene.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmedia-hygiene.4.0.1.zip",97,"2025-06-19 00:00:00",{"slug":81,"name":82,"version":83,"author":84,"author_profile":85,"description":86,"short_description":87,"active_installs":88,"downloaded":89,"rating":28,"num_ratings":28,"last_updated":90,"tested_up_to":49,"requires_at_least":50,"requires_php":71,"tags":91,"homepage":95,"download_link":96,"security_score":57,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"media-wipe","Media Wipe","1.3.3","Md. Nahid Hasan","https:\u002F\u002Fprofiles.wordpress.org\u002Fmdnahidhasan\u002F","\u003Cp>Media Wipe is a powerful and secure WordPress plugin that provides comprehensive media library management capabilities. With revolutionary AI-powered unused media detection, professional DataTable interfaces, advanced confirmation systems, and detailed audit logging, it’s the smartest and safest way to clean up your WordPress media library.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Key Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>AI-Powered Unused Media Detection\u003C\u002Fstrong> – Revolutionary intelligent scanning identifies truly unused media files with confidence scoring (High\u002FMedium\u002FLow)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Professional DataTable Interface\u003C\u002Fstrong> – Modern, responsive tables with search, sorting, pagination, and bulk selection for both Delete Selected and Delete Unused features\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Smart Content Analysis\u003C\u002Fstrong> – Scans posts, pages, widgets, menus, and theme files for comprehensive media usage detection\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Confidence Scoring System\u003C\u002Fstrong> – 0-100% confidence scores with visual badges help you make safe deletion decisions\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Delete Selected Media\u003C\u002Fstrong> – Browse and select specific media files using advanced DataTable with thumbnails, file information, and individual delete options\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Delete Unused Media\u003C\u002Fstrong> – AI-powered detection with “Select High Confidence Only” for safest automated cleanup\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Delete All Media\u003C\u002Fstrong> – Complete media library cleanup with multi-step confirmation process and backup verification\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Deletion History & Audit Logging\u003C\u002Fstrong> – Professional DataTable showing all deletion activities with timestamps, user information, and detailed logs\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Dashboard Overview\u003C\u002Fstrong> – Comprehensive statistics, recent activity, and quick action buttons\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Advanced Safety Features\u003C\u002Fstrong> – Multiple confirmation layers, backup verification, and rate limiting prevent accidental deletions\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Mobile-Optimized Interface\u003C\u002Fstrong> – Fully responsive design with touch-friendly controls and horizontal scrolling tables\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>DataTable Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Professional responsive tables with search, sort, and pagination\u003C\u002Fli>\n\u003Cli>Bulk selection with “Select All” and “Select None” controls\u003C\u002Fli>\n\u003Cli>Individual file actions (delete single files)\u003C\u002Fli>\n\u003Cli>Thumbnail previews with hover effects\u003C\u002Fli>\n\u003Cli>File type badges and size information\u003C\u002Fli>\n\u003Cli>Cross-page selection support for large media libraries\u003C\u002Fli>\n\u003Cli>Mobile-optimized with horizontal scrolling\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Delete Selected Media:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Browse all media files in professional DataTable format\u003C\u002Fli>\n\u003Cli>Search and filter by filename, type, or upload date\u003C\u002Fli>\n\u003Cli>Select individual files or use bulk selection\u003C\u002Fli>\n\u003Cli>Thumbnail previews for images, icons for documents\u003C\u002Fli>\n\u003Cli>Individual delete buttons for single file removal\u003C\u002Fli>\n\u003Cli>Real-time selection counter and delete button state\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Delete Unused Media (AI-Powered):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Intelligent scanning with confidence scoring (0-100%)\u003C\u002Fli>\n\u003Cli>Visual confidence badges: High (90-100%), Medium (75-89%), Low (0-74%)\u003C\u002Fli>\n\u003Cli>“Select High Confidence Only” for safest automated cleanup\u003C\u002Fli>\n\u003Cli>Scans posts, pages, widgets, menus, and theme files\u003C\u002Fli>\n\u003Cli>Real-time scan progress with file counts and status\u003C\u002Fli>\n\u003Cli>Advanced filtering by confidence level\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Dashboard Overview:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Media library statistics with file counts by type\u003C\u002Fli>\n\u003Cli>Total storage usage calculation\u003C\u002Fli>\n\u003Cli>Recent deletion activity timeline\u003C\u002Fli>\n\u003Cli>Quick action buttons for all features\u003C\u002Fli>\n\u003Cli>Modern hero section with key metrics\u003C\u002Fli>\n\u003Cli>System information and plugin status\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Deletion History & Audit Logging:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Professional DataTable showing all deletion activities\u003C\u002Fli>\n\u003Cli>Detailed logs with timestamps, user info, and IP addresses\u003C\u002Fli>\n\u003Cli>Activity and security event tracking\u003C\u002Fli>\n\u003Cli>Configurable logging (enable\u002Fdisable)\u003C\u002Fli>\n\u003Cli>Log clearing functionality\u003C\u002Fli>\n\u003Cli>Export capabilities for compliance\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Security & Safety Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Nonce verification for all operations\u003C\u002Fli>\n\u003Cli>Capability-based access control (manage_options required)\u003C\u002Fli>\n\u003Cli>CSRF protection and input validation\u003C\u002Fli>\n\u003Cli>Rate limiting to prevent abuse (configurable limits per hour)\u003C\u002Fli>\n\u003Cli>Multi-step confirmation processes with backup verification\u003C\u002Fli>\n\u003Cli>Comprehensive audit trails and activity logging\u003C\u002Fli>\n\u003Cli>Security headers implementation\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Use Cases:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Site Cleanup\u003C\u002Fstrong>: Intelligently identify and remove unused media files from multiple site imports or theme changes\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Development to Production\u003C\u002Fstrong>: Clean up development sites before going live with AI-powered unused media detection\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Storage Optimization\u003C\u002Fstrong>: Reduce hosting costs by removing truly unused media files with confidence scoring\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Website Redesigns\u003C\u002Fstrong>: Safely bulk delete old media files during complete website overhauls\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Media Library Maintenance\u003C\u002Fstrong>: Keep organized and efficient media libraries with automated unused file detection\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Compliance & Auditing\u003C\u002Fstrong>: Track all deletion activities with detailed logs for business compliance requirements\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Large Media Management\u003C\u002Fstrong>: Efficiently manage media libraries with 1000+ files using professional DataTable interfaces\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Performance & Technical:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Memory-efficient batch processing for large operations (1000+ files)\u003C\u002Fli>\n\u003Cli>Optimized database queries with early exit scanning\u003C\u002Fli>\n\u003Cli>Professional DataTables.net integration for responsive interfaces\u003C\u002Fli>\n\u003Cli>Caching and performance optimizations\u003C\u002Fli>\n\u003Cli>AJAX-powered operations with progress tracking\u003C\u002Fli>\n\u003Cli>Mobile-optimized responsive design\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>WordPress Compatibility:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Fully tested with WordPress 6.8 (latest version)\u003C\u002Fli>\n\u003Cli>Compatible with WordPress 5.0 and above\u003C\u002Fli>\n\u003Cli>Works with PHP 7.4 to 8.3\u003C\u002Fli>\n\u003Cli>Single-site installations (multisite support planned)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>For support, documentation, and feature requests, please visit:\u003Cbr \u002F>\n* \u003Cstrong>Plugin Dashboard\u003C\u002Fstrong>: Access comprehensive statistics and quick actions within WordPress admin\u003Cbr \u002F>\n* \u003Cstrong>Deletion History\u003C\u002Fstrong>: View detailed audit logs and manage logging settings\u003Cbr \u002F>\n* \u003Cstrong>Author website\u003C\u002Fstrong>: https:\u002F\u002Fmdnahidhasan.netlify.app\u003Cbr \u002F>\n* \u003Cstrong>WordPress.org support forums\u003C\u002Fstrong>: Community support and discussions\u003C\u002Fp>\n\u003Ch3>Privacy Policy\u003C\u002Fh3>\n\u003Cp>Media Wipe respects your privacy and follows WordPress privacy best practices:\u003Cbr \u002F>\n* The plugin only logs activities when logging is enabled in Deletion History settings\u003Cbr \u002F>\n* All logs are stored locally in your WordPress database\u003Cbr \u002F>\n* No data is transmitted to external servers or third parties\u003Cbr \u002F>\n* User information is only logged for audit and security purposes\u003Cbr \u002F>\n* You can enable\u002Fdisable logging and clear all logs at any time from the Deletion History page\u003Cbr \u002F>\n* IP addresses and user information are logged only for security audit purposes\u003C\u002Fp>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>Developed by Md. Nahid Hasan with a focus on security, usability, and WordPress best practices.\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is licensed under the GPLv2 or later. For details, visit \u003Ca href=\"https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fgpl-2.0.html\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fgpl-2.0.html\u003C\u002Fa>.\u003C\u002Fp>\n","AI-powered WordPress media management with intelligent unused media detection and enterprise security. Transform your cleanup workflow!",20,1270,"2026-01-11T12:06:00.000Z",[92,93,21,94,23],"bulk","cleanup","media","https:\u002F\u002Fmdnahidhasan.netlify.app\u002Fmedia-wipe","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmedia-wipe.1.3.3.zip",{"slug":98,"name":99,"version":100,"author":101,"author_profile":102,"description":103,"short_description":104,"active_installs":105,"downloaded":106,"rating":28,"num_ratings":28,"last_updated":107,"tested_up_to":108,"requires_at_least":109,"requires_php":18,"tags":110,"homepage":111,"download_link":112,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"q-cleanup","qCleanup","1.0","ognjen.kuljic","https:\u002F\u002Fprofiles.wordpress.org\u002Fognjenkuljic\u002F","\u003Cp>Some very useful plugins like Regenerate Thumbnails leaves old files behind, so it is good practice to clean after it.\u003C\u002Fp>\n\u003Cp>Features:\u003Cbr \u002F>\n*Remove all unused files from upload dir (Unattached files to posts or pages),\u003Cbr \u002F>\n*Remove all leftover files (forgotten files in upload dir).\u003C\u002Fp>\n","This plugin allows you to delete unused and leftover files from upload dir. In one click you can rid of all unwanted files and reduce space usage.",10,2860,"2012-02-25T18:29:00.000Z","3.3.2","3.3.1",[93,22,73,94,24],"http:\u002F\u002Fwww.qdesignstudio.net\u002Fq-cleanup","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fq-cleanup.zip",{"slug":114,"name":115,"version":42,"author":116,"author_profile":117,"description":118,"short_description":119,"active_installs":28,"downloaded":120,"rating":28,"num_ratings":28,"last_updated":121,"tested_up_to":69,"requires_at_least":50,"requires_php":71,"tags":122,"homepage":18,"download_link":125,"security_score":57,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"media-sifter","Media Sifter","Wajahat Mubashir","https:\u002F\u002Fprofiles.wordpress.org\u002Fwajahatmubashir\u002F","\u003Cp>\u003Cstrong>Media Sifter\u003C\u002Fstrong> helps you reclaim storage by finding media files that are not used anywhere on your site. Run a safe \u003Cstrong>dry-run scan\u003C\u002Fstrong>, preview results, and \u003Cstrong>bulk-delete\u003C\u002Fstrong> only what you confirm.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>🔍 \u003Cstrong>Scan for orphans\u003C\u002Fstrong> — detects media not referenced in posts\u002Fpages or attached to content.\u003C\u002Fli>\n\u003Cli>🧮 \u003Cstrong>Storage stats\u003C\u002Fstrong> — see how many files and how much space can be recovered.\u003C\u002Fli>\n\u003Cli>🧰 \u003Cstrong>Batch scanning\u003C\u002Fstrong> — avoids timeouts on large libraries.\u003C\u002Fli>\n\u003Cli>✅ \u003Cstrong>Safe by default\u003C\u002Fstrong> — dry-run first; delete only after confirmation.\u003C\u002Fli>\n\u003Cli>🔒 \u003Cstrong>Admin-only & secure\u003C\u002Fstrong> — capability checks and nonces on all actions.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>What counts as “in use”?\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Media \u003Cstrong>attached\u003C\u002Fstrong> to a post (parent set).\u003C\u002Fli>\n\u003Cli>Media \u003Cstrong>referenced by URL\u003C\u002Fstrong> in post content or basic meta (e.g., featured image).\u003C\u002Fli>\n\u003Cli>Resized variants (e.g., \u003Ccode>-150x150\u003C\u002Fcode>) linked to the base file.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cblockquote>\n\u003Cp>Note: Deep scanning of page builders (Elementor\u002FDivi), custom fields, and complex meta references are Pro-candidate features.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n","Find and remove unused\u002Forphan media files safely. Dry-run scan, preview, and bulk-delete to reclaim storage.",167,"2025-09-27T19:51:00.000Z",[123,93,94,54,124],"attachments","unused-files","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmedia-sifter.1.0.0.zip",{"attackSurface":127,"codeSignals":139,"taintFlows":212,"riskAssessment":316,"analyzedAt":335},{"hooks":128,"ajaxHandlers":135,"restRoutes":136,"shortcodes":137,"cronEvents":138,"entryPointCount":28,"unprotectedCount":28},[129],{"type":130,"name":131,"callback":132,"file":133,"line":134},"action","admin_menu","upload_janitor_setup","upload-janitor.php",524,[],[],[],[],{"dangerousFunctions":140,"sqlUsage":149,"outputEscaping":155,"fileOperations":14,"externalRequests":28,"nonceChecks":14,"capabilityChecks":28,"bundledLibraries":211},[141,145],{"fn":142,"file":133,"line":143,"context":144},"proc_open",383,"$proc = proc_open(\"tar zcf \".escapeshellarg(trailingslashit($upload['basedir']).$archive_name).\" -C ",{"fn":146,"file":133,"line":147,"context":148},"create_function",489,"$subquery = join(' OR ', array_map(create_function('$term', \"return '$wpdb->posts.post_content LIKE ",{"prepared":150,"raw":150,"locations":151},1,[152],{"file":133,"line":153,"context":154},435,"$wpdb->query() with variable interpolation",{"escaped":28,"rawEcho":156,"locations":157},27,[158,161,163,165,167,169,171,172,174,175,177,179,181,183,185,187,189,191,193,195,197,199,201,203,205,207,209],{"file":133,"line":159,"context":160},90,"raw output",{"file":133,"line":162,"context":160},103,{"file":133,"line":164,"context":160},110,{"file":133,"line":166,"context":160},121,{"file":133,"line":168,"context":160},124,{"file":133,"line":170,"context":160},155,{"file":133,"line":34,"context":160},{"file":133,"line":173,"context":160},165,{"file":133,"line":173,"context":160},{"file":133,"line":176,"context":160},187,{"file":133,"line":178,"context":160},199,{"file":133,"line":180,"context":160},205,{"file":133,"line":182,"context":160},212,{"file":133,"line":184,"context":160},216,{"file":133,"line":186,"context":160},218,{"file":133,"line":188,"context":160},250,{"file":133,"line":190,"context":160},259,{"file":133,"line":192,"context":160},263,{"file":133,"line":194,"context":160},265,{"file":133,"line":196,"context":160},274,{"file":133,"line":198,"context":160},282,{"file":133,"line":200,"context":160},286,{"file":133,"line":202,"context":160},288,{"file":133,"line":204,"context":160},298,{"file":133,"line":206,"context":160},303,{"file":133,"line":208,"context":160},306,{"file":133,"line":210,"context":160},324,[],[213,247,256,264,272,281],{"entryPoint":214,"graph":215,"unsanitizedCount":245,"severity":246},"upload_janitor_controller (upload-janitor.php:24)",{"nodes":216,"edges":239},[217,222,226,231,234,237],{"id":218,"type":219,"label":220,"file":133,"line":221},"n0","source","$_REQUEST",47,{"id":223,"type":224,"label":225,"file":133,"line":221},"n1","transform","→ upload_janitor_confirm()",{"id":227,"type":228,"label":229,"file":133,"line":186,"wp_function":230},"n2","sink","echo() [XSS]","echo",{"id":232,"type":219,"label":220,"file":133,"line":233},"n3",62,{"id":235,"type":224,"label":236,"file":133,"line":233},"n4","→ upload_janitor_report()",{"id":238,"type":228,"label":229,"file":133,"line":208,"wp_function":230},"n5",[240,242,243,244],{"from":218,"to":223,"sanitized":241},false,{"from":223,"to":227,"sanitized":241},{"from":232,"to":235,"sanitized":241},{"from":235,"to":238,"sanitized":241},2,"medium",{"entryPoint":248,"graph":249,"unsanitizedCount":150,"severity":246},"upload_janitor_beginning (upload-janitor.php:82)",{"nodes":250,"edges":254},[251,253],{"id":218,"type":219,"label":252,"file":133,"line":164},"$_SERVER['REQUEST_URI']",{"id":223,"type":228,"label":229,"file":133,"line":164,"wp_function":230},[255],{"from":218,"to":223,"sanitized":241},{"entryPoint":257,"graph":258,"unsanitizedCount":150,"severity":246},"upload_janitor_select (upload-janitor.php:133)",{"nodes":259,"edges":262},[260,261],{"id":218,"type":219,"label":252,"file":133,"line":34},{"id":223,"type":228,"label":229,"file":133,"line":34,"wp_function":230},[263],{"from":218,"to":223,"sanitized":241},{"entryPoint":265,"graph":266,"unsanitizedCount":150,"severity":246},"upload_janitor_confirm (upload-janitor.php:180)",{"nodes":267,"edges":270},[268,269],{"id":218,"type":219,"label":252,"file":133,"line":182},{"id":223,"type":228,"label":229,"file":133,"line":182,"wp_function":230},[271],{"from":218,"to":223,"sanitized":241},{"entryPoint":273,"graph":274,"unsanitizedCount":33,"severity":246},"upload_janitor_report (upload-janitor.php:241)",{"nodes":275,"edges":279},[276,278],{"id":218,"type":219,"label":277,"file":133,"line":190},"$_SERVER['REQUEST_URI'] (x3)",{"id":223,"type":228,"label":229,"file":133,"line":190,"wp_function":230},[280],{"from":218,"to":223,"sanitized":241},{"entryPoint":282,"graph":283,"unsanitizedCount":245,"severity":246},"\u003Cupload-janitor> (upload-janitor.php:0)",{"nodes":284,"edges":307},[285,287,288,291,292,293,295,297,299,301,303,305],{"id":218,"type":219,"label":286,"file":133,"line":164},"$_SERVER['REQUEST_URI'] (x6)",{"id":223,"type":228,"label":229,"file":133,"line":164,"wp_function":230},{"id":227,"type":219,"label":289,"file":133,"line":290},"$_REQUEST (x5)",54,{"id":232,"type":228,"label":229,"file":133,"line":186,"wp_function":230},{"id":235,"type":219,"label":220,"file":133,"line":290},{"id":238,"type":228,"label":294,"file":133,"line":143,"wp_function":142},"proc_open() [RCE]",{"id":296,"type":219,"label":220,"file":133,"line":221},"n6",{"id":298,"type":224,"label":225,"file":133,"line":221},"n7",{"id":300,"type":228,"label":229,"file":133,"line":186,"wp_function":230},"n8",{"id":302,"type":219,"label":220,"file":133,"line":233},"n9",{"id":304,"type":224,"label":236,"file":133,"line":233},"n10",{"id":306,"type":228,"label":229,"file":133,"line":208,"wp_function":230},"n11",[308,310,311,312,313,314,315],{"from":218,"to":223,"sanitized":309},true,{"from":227,"to":232,"sanitized":309},{"from":235,"to":238,"sanitized":309},{"from":296,"to":298,"sanitized":241},{"from":298,"to":300,"sanitized":241},{"from":302,"to":304,"sanitized":241},{"from":304,"to":306,"sanitized":241},{"summary":317,"deductions":318},"The 'upload-janitor' plugin v0.2 exhibits a mixed security posture.  On the positive side, its attack surface appears minimal, with no identifiable AJAX handlers, REST API routes, shortcodes, or cron events exposed without authentication. The vulnerability history is also clean, with no recorded CVEs, suggesting a history of good security practices or a lack of past exploitation.  However, the static analysis reveals significant concerns within the codebase itself. The presence of dangerous functions like `proc_open` and `create_function` raises immediate red flags, as these can be exploited for remote code execution if not handled with extreme caution. Furthermore, the taint analysis indicates that all analyzed flows involve unsanitized paths, which is a critical vulnerability, even though no specific severity was assigned at this stage.  This suggests a high likelihood of path traversal vulnerabilities. The complete lack of output escaping is another major weakness, potentially leading to cross-site scripting (XSS) vulnerabilities. While the plugin has no known CVEs, the internal code quality issues, particularly with unsanitized paths and unescaped output, present a substantial inherent risk that could be exploited by a motivated attacker.",[319,321,323,326,329,332],{"reason":320,"points":105},"Dangerous function: proc_open used",{"reason":322,"points":105},"Dangerous function: create_function used",{"reason":324,"points":325},"All flows with unsanitized paths",15,{"reason":327,"points":328},"0% output escaping",8,{"reason":330,"points":331},"SQL queries without prepared statements",5,{"reason":333,"points":334},"No capability checks",7,"2026-03-16T22:01:08.973Z",{"wat":337,"direct":344},{"assetPaths":338,"generatorPatterns":340,"scriptPaths":341,"versionParams":342},[339],"\u002Fwp-content\u002Fplugins\u002Fupload-janitor\u002Fspinner.gif",[],[],[343],"upload-janitor\u002Fspinner.gif?ver=",{"cssClasses":345,"htmlComments":348,"htmlAttributes":349,"restEndpoints":356,"jsGlobals":357,"shortcodeOutput":359},[346,347],"wrap","ul-disc",[],[350,351,352,353,354,355],"id=\"upload_janitor_introduction\"","id=\"upload_janitor_searching\"","name=\"selections[]\"","name=\"stage\"","name=\"archive\"","name=\"continue\"",[],[358],"jQuery",[]]