=== Media Trim — Unused & Duplicate Media Cleaner === Contributors: mehedi2509 Tags: media library, cleanup, unused media, duplicates, performance Requires at least: 6.0 Tested up to: 6.9 Stable tag: 1.0.3 Requires PHP: 7.4 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Clean up your WordPress media library by finding and removing unused, duplicate, and orphaned media files. Reclaim disk space instantly. == Description == **Media Trim** is the ultimate solution for keeping your WordPress media library clean and optimized. Stop wasting server space on unused images and forgotten uploads. Whether you're managing a small blog or a large content site, Media Trim scans your entire media library, identifies files that aren't being used anywhere, and gives you the power to safely remove them with a single click. == Why Choose Media Trim? == * **Smart Detection:** Advanced scanning algorithms detect truly unused media by checking posts, pages, custom post types, meta fields, widgets, and theme options. * **Safe Cleanup:** Files are moved to a trash system first, allowing you to restore them if needed before permanent deletion. * **Duplicate Finder:** Identify and merge duplicate files to save even more space. * **File System Scanner:** Find orphaned files on disk that aren't in the media library. == Key Features == * **Unused Media Detection:** Scan and identify media files not used anywhere on your site. * **Duplicate Media Finder:** Find files with identical content and merge them. * **File System Scanner:** Discover orphaned files in your uploads folder. * **Trash System:** Safe deletion with restore capability before permanent removal. * **Bulk Actions:** Delete, trash, or restore multiple files at once. * **Detailed Reports:** See exactly where each media file is being used. * **Performance Optimized:** Batch processing to handle large media libraries. == External Services == This plugin connects to external third-party services to provide specific features. Below is a detailed disclosure of each service used: = Pexels API = This plugin includes an optional "Stock Images" feature that integrates with the **Pexels API** to search and import free stock photos directly into your site. * **What it does:** Provides a searchable library of free-to-use stock images within the "Stock Images" tab. * **When data is sent:** Only when you actively search for images or import a specific photo. No data is sent automatically or in the background. * **What data is sent:** Your search terms and pagination preferences are sent to Pexels. Your Pexels API key (if provided in Settings) is sent as an authorization header. * **Service Provider:** Pexels (Canva Pty Ltd) * **Terms of Use:** [https://www.pexels.com/terms-of-service/](https://www.pexels.com/terms-of-service/) * **Privacy Policy:** [https://www.pexels.com/privacy-policy/](https://www.pexels.com/privacy-policy/) == Installation == 1. Go to **Plugins > Add New** in your WordPress dashboard. 2. Search for `Media Trim`. 3. Click **Install Now** and then **Activate**. 4. Go to **Media Trim** in your admin menu and start scanning! == Frequently Asked Questions == = What is Media Trim? = Media Trim is a WordPress plugin that helps you find and remove unused, duplicate, and orphaned media files from your site. = Is it safe to delete unused media? = Yes! Media Trim moves files to a trash system first. You can review and restore any file before permanently deleting it. = Will this affect my live content? = No. Media Trim only identifies files that are not being used anywhere. Your active content remains untouched. = Can I undo a deletion? = Yes, files go to the Media Trim trash first. You can restore them any time before permanent deletion. = Does it work with page builders? = Yes! Media Trim scans post content, meta fields, and serialized data to detect usage in popular page builders like Elementor, Divi, and Beaver Builder. = How does duplicate detection work? = Media Trim compares file hashes to find identical content, regardless of filename. You can then choose which copy to keep and merge the duplicates. == Development == This plugin uses `@wordpress/scripts` for building the admin dashboard React application. The human-readable source code is located in the `admin/dashboard/` directory. To build the assets: 1. Run `npm install` to install dependencies. 2. Run `npm run build` to compile the production assets into `assets/admin/`. == Changelog == = 1.0.3 - 10 May 2026 = * Added: Brand UI Rebranding — updated the entire dashboard with a new premium steel blue and navy palette. * Added: Welcome Banner — new dashboard overview section with "Smart Media Cleanup" brand messaging. * Added: Scanning Line Animation — real-time visual scanning effect that matches the brand identity. * Added: Glassmorphism effects and refined card aesthetics for a more modern experience. * Improved: Dashboard performance and visual consistency across all tabs. = 1.0.2 - 10 March 2026 = * Fix: Bulk restore from trash now correctly handles failed restorations — trash records are preserved and success count is accurate. * Fix: Scan completion error ("Unexpected token" / database column mismatch in ScanManager) resolved. * Fix: Unused Media pagination now works correctly. * Fix: Duplicates page pagination reduced to 10 items per page for better usability. * Fix: Bulk delete permanently now uses safer JSON parsing for trash IDs. = 1.0.1 - 2 March 2026 = * Fix: Resolved issues with the Duplicates feature. * Added: Plugin icon, logo, and banner assets. = 1.0.0 - 5 February 2026 = * Initial release to the WordPress repository. * Added: Unused media scanner. * Added: Duplicate media finder. * Added: File system scanner for orphaned files. * Added: Trash system with restore capability. * Added: Bulk delete and restore actions.