{"id":333630,"date":"2026-07-07T14:45:11","date_gmt":"2026-07-07T14:45:11","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/naveencodes-media-organizer\/"},"modified":"2026-10-14T10:40:24","modified_gmt":"2026-10-14T10:40:24","slug":"naveencodes-media-organizer","status":"publish","type":"plugin","link":"https:\/\/kea.wordpress.org\/plugins\/naveencodes-media-organizer\/","author":16310057,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1.3","requires":"6.5","requires_php":"8.1","requires_plugins":null,"header_name":"NaveenCodes Media Organizer","header_author":"Naveen Goyal","header_description":"Organize your WordPress media library into virtual folders, find unused files, and bulk-manage attachments \u2014 all without leaving the media library.","assets_banners_color":"261d10","last_updated":"2026-10-14 10:40:24","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/naveencodes-media-organizer\/","header_author_uri":"https:\/\/naveencodes.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":330,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"shinu1503","date":"2026-07-07 14:45:04","revision":3599218},"1.0.1":{"tag":"1.0.1","author":"shinu1503","date":"2026-10-03 14:46:30","revision":3726379},"1.1.0":{"tag":"1.1.0","author":"shinu1503","date":"2026-10-14 10:40:24","revision":3746054}},"upgrade_notice":{"1.1.0":"<p>Adds folder import\/export and search inside a folder \u2014 including folder filtering in list view, which was grid-view only before.<\/p>","1.0.1":"<p>Recommended: restores the missing admin styles and scripts so the folder sidebar and all Media Organizer screens work fully.<\/p>","1.0.0":"<p>Initial release \u2014 no upgrade action needed.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3599221,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3599221,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3599221,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3599221,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Media Library with folder sidebar \u2014 click any folder to filter media.","2":"Attachment detail panel with Folder dropdown.","3":"Unused Media page \u2014 grid view with bulk-delete.","4":"Replace File page \u2014 upload new file, URL stays the same.","5":"Find Duplicates page \u2014 scan results grouped by identical content.","6":"WP Admin dashboard widget with quick stats.","7":"Import\/Export page \u2014 download or restore your folder structure as JSON."}},"plugin_section":[262246],"plugin_tags":[8848,130330,233,143842,219749],"plugin_category":[],"plugin_contributors":[232463],"plugin_business_model":[],"class_list":["post-333630","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-file-manager","plugin_tags-media-folders","plugin_tags-media-library","plugin_tags-media-organizer","plugin_tags-unused-media","plugin_contributors-shinu1503","plugin_committers-shinu1503"],"banners":{"banner":"https:\/\/ps.w.org\/naveencodes-media-organizer\/assets\/banner-772x250.png?rev=3599221","banner_2x":"https:\/\/ps.w.org\/naveencodes-media-organizer\/assets\/banner-1544x500.png?rev=3599221","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/naveencodes-media-organizer\/assets\/icon-128x128.png?rev=3599221","icon_2x":"https:\/\/ps.w.org\/naveencodes-media-organizer\/assets\/icon-256x256.png?rev=3599221","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>NaveenCodes Media Organizer<\/strong> adds a clean folder sidebar to your WordPress Media Library and a dedicated Unused Media page \u2014 without any cloud service, subscription, or external requests.<\/p>\n\n<h4>Features<\/h4>\n\n<p><strong>Virtual Folders<\/strong>\nCreate an unlimited hierarchy of folders directly inside the Media Library. Folders are WordPress taxonomy terms \u2014 no extra database tables.<\/p>\n\n<p><strong>Folder Sidebar<\/strong>\nA collapsible sidebar appears in the Media Library page with your full folder tree. Click any folder to instantly filter the grid to files in that folder.<\/p>\n\n<p><strong>Folder Assignment<\/strong>\nAssign media to a folder from the attachment detail panel (click any image in the media grid). Works in the Media Library, the media modal, and the Edit Media page.<\/p>\n\n<p><strong>Bulk Move<\/strong>\nSelect multiple files in the media grid, pick a folder, and move them all in one click.<\/p>\n\n<p><strong>Search Inside a Folder<\/strong>\nA search box in the sidebar filters by filename\/title within the currently selected folder, in both grid view and list view.<\/p>\n\n<p><strong>Folder Import \/ Export<\/strong>\nExport your entire folder structure \u2014 names, hierarchy, and which files belong where \u2014 as a JSON file. Import it on the same site or a migrated copy: folders are created (or matched if they already exist) and files are re-assigned by matching their path in the uploads directory. Nothing is guessed or downloaded \u2014 files that don't already exist on the target site are skipped and reported.<\/p>\n\n<p><strong>Unused Media Finder<\/strong>\nA dedicated \"Unused Media\" page lists every file that is not attached to a post, not embedded in any post content, and not set as a featured image. Delete them individually or in bulk.<\/p>\n\n<p><strong>Replace File<\/strong>\nUpload a replacement for any file \u2014 the URL, attachment ID, and all page references stay exactly the same. Thumbnails are automatically regenerated.<\/p>\n\n<p><strong>Duplicate Finder<\/strong>\nScans your entire media library for files with identical content (hash-based). Shows them in groups so you can delete extras without losing the original.<\/p>\n\n<p><strong>Dashboard Widget<\/strong>\nA quick-glance widget on your WP Admin dashboard shows total files, folder count, and unused file count.<\/p>\n\n<h4>Privacy<\/h4>\n\n<p>Everything runs on your server. No data is sent anywhere. No tracking, no analytics, no ads.<\/p>\n\n<h4>Free, Forever<\/h4>\n\n<p>No upsells, no premium tier, no usage limits.<\/p>\n\n<p>\u2764\ufe0f <em>Dedicated in loving memory of Maa \u2014 18 May.<\/em><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>naveencodes-media-organizer<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate through <strong>Plugins \u2192 Installed Plugins<\/strong><\/li>\n<li>Go to <strong>Media \u2192 Media Library<\/strong> \u2014 the folder sidebar appears on the left<\/li>\n<li>Visit <strong>Media \u2192 Unused Media<\/strong> to find and clean up orphaned files<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20organizing%20folders%20change%20my%20file%20urls%3F\"><h3>Will organizing folders change my file URLs?<\/h3><\/dt>\n<dd><p>No. Folders are virtual (WordPress taxonomy terms) and do not affect the physical file paths or URLs of your media.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20block%20editor%20media%20modal%3F\"><h3>Does it work with the Block Editor media modal?<\/h3><\/dt>\n<dd><p>Yes. The folder dropdown appears in the attachment detail panel in both the media grid and the block editor media modal.<\/p><\/dd>\n<dt id=\"what%20does%20%22unused%22%20mean%3F\"><h3>What does \"unused\" mean?<\/h3><\/dt>\n<dd><p>A file is considered unused if it is not attached to any post, not referenced in the content of any published post or page, and not used as a featured image.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20down%20the%20media%20library%3F\"><h3>Does it slow down the media library?<\/h3><\/dt>\n<dd><p>No. Folder filtering uses a standard WordPress taxonomy query \u2014 the same mechanism WP uses for its own filters.<\/p><\/dd>\n<dt id=\"is%20it%20really%20free%3F\"><h3>Is it really free?<\/h3><\/dt>\n<dd><p>Yes. Free forever, every feature included, no ads. Built with care by NaveenCodes.<\/p><\/dd>\n<dt id=\"how%20does%20folder%20import%2Fexport%20work%3F\"><h3>How does folder import\/export work?<\/h3><\/dt>\n<dd><p>Export downloads a JSON file with your folder names, their hierarchy, and which file (by path) belongs in each folder. Importing it creates any folders that don't already exist and re-assigns files whose path already matches a file in this site's uploads directory \u2014 nothing is downloaded or guessed, so files that aren't actually present are skipped and reported in a summary.<\/p><\/dd>\n<dt id=\"can%20i%20move%20my%20folder%20structure%20to%20another%20site%3F\"><h3>Can I move my folder structure to another site?<\/h3><\/dt>\n<dd><p>Yes, as long as the media files themselves (or copies with the same relative path) already exist in the destination site's uploads directory \u2014 for example, after migrating the uploads folder itself. The export\/import only restores the organization, not the files.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: Folder Import\/Export \u2014 download your folder structure and file assignments as a JSON file, and import it on the same or another site. Folders are created or matched by name; files are re-assigned only when a matching file already exists in the destination uploads directory.<\/li>\n<li>New: Search box in the folder sidebar filters media by filename\/title within the selected folder, in both grid view and classic list view.<\/li>\n<li>New: the classic list-table view now also respects the folder filter \u2014 previously only grid view did.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fixed: the admin stylesheet and script were missing from the 1.0.0 package, so the folder sidebar, folder actions, Unused Media and Find Duplicates screens could not load their styles and interactive features. Both files are now included.<\/li>\n<li>Tested with WordPress 7.1 (verified on WordPress 7.1 with PHP 8.2, no warnings or deprecation notices).<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Virtual folder system (unlimited hierarchy, WordPress taxonomy).<\/li>\n<li>Folder sidebar injected into the Media Library page.<\/li>\n<li>Folder assignment from attachment detail panel.<\/li>\n<li>Bulk move selected media to a folder.<\/li>\n<li>Unused Media finder page with individual and bulk delete.<\/li>\n<li>Replace File \u2014 swap any file while keeping its URL and references intact.<\/li>\n<li>Find Duplicates \u2014 hash-based scan with group view and safe delete.<\/li>\n<li>WP Admin dashboard widget.<\/li>\n<\/ul>","raw_excerpt":"Organize media into folders, replace files without breaking URLs, find duplicates, and clean up unused files \u2014 free, no limits.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/333630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=333630"}],"author":[{"embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/shinu1503"}],"wp:attachment":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=333630"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=333630"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=333630"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=333630"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=333630"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=333630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}