{"id":266596,"date":"2026-05-10T20:58:03","date_gmt":"2026-05-10T20:58:03","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/media-inventory-forge\/"},"modified":"2026-05-10T20:57:26","modified_gmt":"2026-05-10T20:57:26","slug":"media-inventory-forge","status":"publish","type":"plugin","link":"https:\/\/he.wordpress.org\/plugins\/media-inventory-forge\/","author":18266587,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"5.1.0","stable_tag":"5.1.0","tested":"6.9.4","requires":"5.0","requires_php":"8.2","requires_plugins":null,"header_name":"Media Inventory Forge","header_author":"Jim R Forge","header_description":"Professional media library scanner and analyzer for WordPress developers","assets_banners_color":"786c5c","last_updated":"2026-05-10 20:57:26","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/buymeacoffee.com\/jimrweb","header_plugin_uri":"https:\/\/github.com\/Mij-Strebor\/media-inventory-forge","header_author_uri":"https:\/\/jimrforge.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":32,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"5.1.0":{"tag":"5.1.0","author":"mijstrebor","date":"2026-05-10 20:57:26"}},"upgrade_notice":{"5.1.0":"<p>WordPress standards compliance release. All Plugin Check items resolved. Raised minimum PHP to 8.2. Safe update from 4.x.<\/p>","4.0.1":"<p>Bug fix release improving Table View reliability on fresh installs. Adds Community &amp; Tools panel. Safe update from 4.0.0.<\/p>","4.0.0":"<p>Major feature release with unused media detection, usage tracking, dual view modes (Card\/Table), visual distribution charts, advanced filtering, and sortable columns. Recommended upgrade for all users.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3528038,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3528038,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3528027,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3528027,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["5.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3528027,"resolution":"1","location":"assets","locale":""}},"screenshots":{"1":"Full application view","2":"Main scanning interface with progress tracking and visual media distribution chart","3":"Card View mode showing expandable media cards with detailed metadata","4":"Table View mode with sortable columns and advanced filtering options"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1108,6601,84,187,6464],"plugin_category":[45,50,52],"plugin_contributors":[249308],"plugin_business_model":[],"class_list":["post-266596","plugin","type-plugin","status-publish","hentry","plugin_tags-analysis","plugin_tags-inventory","plugin_tags-media","plugin_tags-optimization","plugin_tags-scanner","plugin_category-ecommerce","plugin_category-media","plugin_category-performance","plugin_contributors-mijstrebor","plugin_committers-mijstrebor"],"banners":{"banner":"https:\/\/ps.w.org\/media-inventory-forge\/assets\/banner-772x250.png?rev=3528027","banner_2x":"https:\/\/ps.w.org\/media-inventory-forge\/assets\/banner-1544x500.png?rev=3528027","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/media-inventory-forge\/assets\/icon-128x128.png?rev=3528038","icon_2x":"https:\/\/ps.w.org\/media-inventory-forge\/assets\/icon-256x256.png?rev=3528038","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/media-inventory-forge\/assets\/screenshot-1.png?rev=3528027","caption":"Full application view"}],"raw_content":"<!--section=description-->\n<p>Media Inventory Forge is a comprehensive media library scanning and analysis tool designed for WordPress developers and administrators. The plugin provides detailed insights into media assets, file organization, usage tracking, and optimization opportunities through an intuitive dual-view interface.<\/p>\n\n<p><strong>Key Features:<\/strong><\/p>\n\n<ul>\n<li><strong>Dual View Modes<\/strong> \u2013 Switch between Card View for detailed browsing or Table View for sortable data analysis<\/li>\n<li><strong>Visual Distribution Chart<\/strong> \u2013 Interactive graphic showing media breakdown by file type at a glance<\/li>\n<li><strong>Unused Media Detection<\/strong> \u2013 Identify media files not used anywhere on your site for safe cleanup<\/li>\n<li><strong>Usage Location Tracking<\/strong> \u2013 See exactly where each media item is used (posts, pages, widgets, theme files)<\/li>\n<li><strong>Advanced Filtering<\/strong> \u2013 Filter results by file type, size, usage status, and upload date<\/li>\n<li><strong>Sortable Table Columns<\/strong> \u2013 Click column headers to sort by name, size, type, or upload date in Table View<\/li>\n<li><strong>Comprehensive Media Scanning<\/strong> \u2013 Analyzes all media types including images, videos, audio, fonts, documents, and SVGs<\/li>\n<li><strong>Detailed File Information<\/strong> \u2013 Extracts metadata, dimensions, file sizes, and WordPress-generated variations<\/li>\n<li><strong>Storage Analysis<\/strong> \u2013 Provides precise storage usage by category with optimization recommendations<\/li>\n<li><strong>Progressive Scanning<\/strong> \u2013 Handles large media libraries efficiently with batch processing<\/li>\n<li><strong>CSV Export<\/strong> \u2013 Generate detailed reports for analysis, auditing, or cleanup planning<\/li>\n<li><strong>Professional Interface<\/strong> \u2013 Clean, intuitive admin interface with collapsible sections<\/li>\n<li><strong>Font Analysis<\/strong> \u2013 Specialized handling for font files with family grouping<\/li>\n<li><strong>Image Variations<\/strong> \u2013 Tracks WordPress-generated image sizes and thumbnails<\/li>\n<li><strong>Network Compatible<\/strong> \u2013 Works with WordPress multisite installations<\/li>\n<\/ul>\n\n<p><strong>Perfect For:<\/strong><\/p>\n\n<ul>\n<li>WordPress developers analyzing client sites<\/li>\n<li>Site administrators planning cleanup projects<\/li>\n<li>Hosting providers optimizing storage usage<\/li>\n<li>SEO professionals auditing media assets<\/li>\n<li>Theme developers understanding media requirements<\/li>\n<\/ul>\n\n<p><strong>Technical Highlights:<\/strong><\/p>\n\n<ul>\n<li>Efficient batch processing for large libraries<\/li>\n<li>Memory-conscious scanning algorithms<\/li>\n<li>Extensible architecture with processor factory pattern<\/li>\n<li>WordPress coding standards compliance<\/li>\n<li>Secure file access with capability checks<\/li>\n<li>Professional error handling and logging<\/li>\n<\/ul>\n\n<h3>Privacy Policy<\/h3>\n\n<p>Media Inventory Forge does not collect, store, or transmit any personal data or website information outside of your WordPress installation. All scanning and analysis is performed locally on your server.<\/p>\n\n<h3>Support<\/h3>\n\n<p>For support, bug reports, or feature requests, please visit our GitHub repository or contact us through our website at https:\/\/jimrforge.com.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/media-inventory-forge<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Navigate to Tools &gt; Media Inventory Forge to access the scanner.<\/li>\n<li>Click \"Start Scan\" to begin analyzing your media library.<\/li>\n<li>View results in Card View or Table View using the toggle buttons.<\/li>\n<li>Review the visual distribution chart to see media breakdown by type.<\/li>\n<li>Use filters to narrow results by type, size, usage, or date.<\/li>\n<li>Sort table columns by clicking headers in Table View.<\/li>\n<li>Export to CSV for detailed external analysis.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20this%20plugin%20handle%20large%20media%20libraries%3F\"><h3>Can this plugin handle large media libraries?<\/h3><\/dt>\n<dd><p>Yes! Media Inventory Forge uses progressive batch processing to handle libraries with thousands of media files without timeout issues.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20modify%20or%20delete%20my%20media%20files%3F\"><h3>Does this plugin modify or delete my media files?<\/h3><\/dt>\n<dd><p>No. Media Inventory Forge is a read-only analysis tool. It scans and reports on your media but never modifies or deletes files.<\/p><\/dd>\n<dt id=\"what%20file%20types%20are%20supported%3F\"><h3>What file types are supported?<\/h3><\/dt>\n<dd><p>The plugin analyzes all media types including images (JPEG, PNG, GIF, WebP, SVG), videos (MP4, AVI, MOV), audio files (MP3, WAV), documents (PDF, DOC, XLS), fonts (TTF, OTF, WOFF), and more.<\/p><\/dd>\n<dt id=\"can%20i%20export%20the%20scan%20results%3F\"><h3>Can I export the scan results?<\/h3><\/dt>\n<dd><p>Yes. The plugin includes a CSV export function that generates detailed reports with all scanned data for external analysis.<\/p><\/dd>\n<dt id=\"is%20this%20compatible%20with%20multisite%20installations%3F\"><h3>Is this compatible with multisite installations?<\/h3><\/dt>\n<dd><p>Yes. Media Inventory Forge works with both single-site and multisite WordPress installations.<\/p><\/dd>\n<dt id=\"how%20accurate%20are%20the%20file%20size%20calculations%3F\"><h3>How accurate are the file size calculations?<\/h3><\/dt>\n<dd><p>The plugin uses direct filesystem access to get precise file sizes, including all WordPress-generated variations and thumbnails.<\/p><\/dd>\n<dt id=\"what%27s%20the%20difference%20between%20card%20view%20and%20table%20view%3F\"><h3>What's the difference between Card View and Table View?<\/h3><\/dt>\n<dd><p>Card View displays media in an expandable card format, perfect for browsing individual files with detailed metadata. Table View shows all media in a sortable table with columns for quick comparison and analysis. Switch between views anytime using the toggle buttons.<\/p><\/dd>\n<dt id=\"how%20does%20unused%20media%20detection%20work%3F\"><h3>How does unused media detection work?<\/h3><\/dt>\n<dd><p>The plugin scans your entire WordPress installation including posts, pages, widgets, theme files, and page builders to identify where each media file is used. Files with no detected usage are flagged as \"unused\" - though you should always verify before deleting as some uses (like hardcoded URLs in custom code) may not be detectable.<\/p><\/dd>\n<dt id=\"can%20i%20sort%20the%20results%20in%20table%20view%3F\"><h3>Can I sort the results in Table View?<\/h3><\/dt>\n<dd><p>Yes! Click any column header in Table View to sort by that column. Click again to reverse the sort order. You can sort by filename, file size, file type, upload date, and usage status.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>5.1.0<\/h4>\n\n<ul>\n<li>WordPress standards pass \u2014 all 34 code review items resolved; full Plugin Check compliance.<\/li>\n<li>Processor factory \u2014 scanner resolves file processors by MIME type via MINVF_Processor_Factory.<\/li>\n<li>Category order \u2014 single source of truth in MINVF_Table_Builder::$category_order, shared with JavaScript.<\/li>\n<li>Scan sources \u2014 removed four unimplemented stub source filter checkboxes.<\/li>\n<li>Dev infrastructure \u2014 added .distignore, tests\/ scaffold, and CLAUDE.md.<\/li>\n<li>Fix: batch size default corrected to 30 in both scanner constructor and AJAX controller (was 10).<\/li>\n<li>Fix: card view no longer blank after scan in table mode; table no longer stale after re-scan.<\/li>\n<li>Fix: all WordPress Plugin Check errors and warnings resolved.<\/li>\n<li>Raised minimum PHP version from 7.4 to 8.2.<\/li>\n<\/ul>\n\n<h4>4.0.1<\/h4>\n\n<ul>\n<li>Fix: Resolved race condition causing \"no media available\" message on first scan in Table View<\/li>\n<li>Fix: Table View now properly requires explicit scan in current session (no auto-loading from cache)<\/li>\n<li>Feature: Added Community &amp; Tools panel showcasing Jim R Forge ecosystem plugins<\/li>\n<li>Enhancement: Synchronized window.inventoryData across JavaScript files for better session tracking<\/li>\n<li>Enhancement: Community panel with links to related plugins and support options<\/li>\n<\/ul>\n\n<h4>4.0.0<\/h4>\n\n<ul>\n<li>Major Feature: Unused media detection - identify media not used anywhere on your site<\/li>\n<li>Major Feature: Usage location tracking - see exactly where each media item is used<\/li>\n<li>Major Feature: Table view mode - alternative to card view with sortable columns<\/li>\n<li>Major Feature: Advanced filtering - filter by type, size, usage status, and upload date<\/li>\n<li>Enhancement: Completely redesigned admin interface for better workflow<\/li>\n<li>Enhancement: Improved performance for large media libraries<\/li>\n<li>Enhancement: Better responsive design for mobile devices<\/li>\n<li>Update: Comprehensive testing and bug fixes<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Enhanced scanning performance with improved batch processing<\/li>\n<li>Added specialized font file analysis with family grouping<\/li>\n<li>Improved error handling and progress reporting<\/li>\n<li>Updated admin interface with better responsive design<\/li>\n<li>Added comprehensive CSV export with detailed file metadata<\/li>\n<li>Implemented WordPress coding standards compliance<\/li>\n<li>Enhanced security with proper input validation and sanitization<\/li>\n<li>Added support for additional media file types<\/li>\n<li>Improved memory management for large library scanning<\/li>\n<li>Fixed various minor bugs and performance improvements<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Complete rewrite with improved architecture<\/li>\n<li>Added processor factory pattern for extensible file handling<\/li>\n<li>Implemented professional admin interface<\/li>\n<li>Added batch processing for large media libraries<\/li>\n<li>Enhanced error handling and logging<\/li>\n<li>Improved file categorization and metadata extraction<\/li>\n<li>Added CSV export functionality<\/li>\n<li>Network multisite compatibility<\/li>\n<li>WordPress 6.0+ compatibility<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Basic media scanning functionality<\/li>\n<li>Simple file categorization<\/li>\n<li>WordPress admin integration<\/li>\n<\/ul>","raw_excerpt":"Professional media library scanner and analyzer for WordPress developers and administrators.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/266596","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=266596"}],"author":[{"embeddable":true,"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mijstrebor"}],"wp:attachment":[{"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=266596"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=266596"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=266596"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=266596"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=266596"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=266596"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}