Title: Sawir Media Folders
Author: Ricardo Sawir
Published: <strong>July 5, 2026</strong>
Last modified: July 5, 2026

---

Search plugins

![](https://s.w.org/plugins/geopattern-icon/sawir-media-folders.svg)

# Sawir Media Folders

 By [Ricardo Sawir](https://profiles.wordpress.org/sawirricardo/)

[Download](https://downloads.wordpress.org/plugin/sawir-media-folders.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/sawir-media-folders/#description)
 * [Reviews](https://wordpress.org/plugins/sawir-media-folders/#reviews)
 * [Development](https://wordpress.org/plugins/sawir-media-folders/#developers)

 [Support](https://wordpress.org/support/plugin/sawir-media-folders/)

## Description

Organize your media library into folders and subfolders. No folder limits, no upsells.

 * **Unlimited folders and subfolders** — no caps.
 * **Fast** — the whole folder tree loads with two database queries, regardless 
   of library size. Filtering uses WordPress’s native media query.
 * **Safe** — folders are virtual (a taxonomy). Physical files never move, so no
   URL ever breaks. Deleting a folder never deletes files.

### How it works

**Where folders appear**

 * _Media  Library (grid view)_: the full folder tree panel with drag & drop. The
   panel does not appear in list view.
 * _Media modals_ (post editor, featured image, galleries): the same folder tree,
   docked on the left of the file browser. Hidden on small screens.

**The tree panel**

 * _All files_ shows everything; _Uncategorized_ shows files not in any folder.
 * Folder counts include files in subfolders.
 * Folders with subfolders show a ▾ arrow — click it to collapse or expand. Collapse
   state is remembered per browser.
 * The « button in the panel header minimizes the whole panel to a slim strip (»
   restores it). Remembered per browser, applies to the grid and modals alike.
 * Drag the panel’s right edge to resize it. The width is remembered per browser
   and shared between the grid and modals.
 * _New_ creates a top-level folder. Hover a folder for its actions: **+** new subfolder,**
   ✎** rename, **×** delete.
 * Rename inline: double-click a folder’s name (or click **✎**), type the new name,
   press Enter. Esc cancels.
 * A file lives in exactly one folder at a time.

**Sorting**

The Sort row under the panel header orders the files shown on the right — by date,
modified, name, or author, ascending or descending. It applies to whichever folder(
or All files) is selected. Sorting by file size isn’t offered: WordPress doesn’t
store attachment sizes in a sortable way.

**Putting files in folders**

 * Drag any file from the grid onto a folder — on the Media Library page or inside
   a media modal.
 * To move several at once: _Bulk select_ (or in a modal, just select multiple),
   pick files, drag the selection onto a folder.
 * Drag files onto _Uncategorized_ to remove them from their folder.

**Moving and reordering folders**

Drag a folder onto another folder. The drop position decides what happens:

 * _Top edge_ (line above): insert **before** that folder.
 * _Bottom edge_ (line below): insert **after** that folder.
 * _Middle_ (dashed outline): nest **inside** that folder, after its existing children.
 * Dropping on _All files_ or _Uncategorized_ moves the folder to the top of the
   root level.
 * Prefer buttons? Hover a folder: ** / ** move it among its siblings, **⇄** opens
   a dropdown to pick a new parent folder (or top level).
 * A folder cannot be moved into its own subtree.
 * Untouched folders sort alphabetically; once you drag one, its siblings keep your
   manual order.

**Downloading a folder**

Hover a folder and click **⬇** to download it as a zip. Subfolders are included 
as folders inside the zip; duplicate filenames are auto-renamed (photo.jpg, photo-
2.jpg).

**Deleting a folder**

Files are kept and become uncategorized. Subfolders move up one level (to the deleted
folder’s parent).

### Automatic organization (for developers)

New uploads can be filed into folders automatically with the `sawirmf_auto_folder`
filter. Return a folder path (created if missing), an existing folder ID, or null
to leave the upload uncategorized. Nothing is auto-filed unless you add a rule —
the default is off.

File PDFs into “Documents”, and WooCommerce product images into “Products”:

    ```
    add_filter( 'sawirmf_auto_folder', function ( $folder, $att_id, $attachment ) {
        if ( 'application/pdf' === $attachment->post_mime_type ) {
            return 'Documents';
        }
        if ( 'product' === get_post_type( $attachment->post_parent ) ) {
            return 'Products';
        }
        return $folder;
    }, 10, 3 );
    ```

File blog images by year (“Blog/2026”):

    ```
    add_filter( 'sawirmf_auto_folder', function ( $folder, $att_id, $attachment ) {
        if ( 'post' === get_post_type( $attachment->post_parent ) ) {
            return 'Blog/' . get_the_date( 'Y', $attachment );
        }
        return $folder;
    }, 10, 3 );
    ```

Give each uploading user their own folder:

    ```
    add_filter( 'sawirmf_auto_folder', function ( $folder, $att_id, $attachment ) {
        $user = get_userdata( $attachment->post_author );
        return $user ? 'Users/' . $user->display_name : $folder;
    }, 10, 3 );
    ```

Notes:

 * Paths are slash-separated and nest (“Clients/Acme/Logos” creates three levels
   as needed); existing folders are reused, never duplicated.
 * Rules only run for uploads made while the plugin is active; existing files are
   untouched.
 * Returning a folder ID that doesn’t exist is ignored (the upload stays uncategorized).

### Other plugins by Sawir Studio

 * [Sawir Live Translate](https://wordpress.org/plugins/sawir-live-translate/) —
   translate any front-end page live and let visitors switch languages.
 * [Sawir Restock Notifier for WooCommerce](https://wordpress.org/plugins/sawir-restock-notifier-for-woocommerce/)—
   let customers request an email when an out-of-stock product is back.
 * [Sawir Product Image Zoom for WooCommerce](https://wordpress.org/plugins/sawir-product-image-zoom-for-woocommerce/)—
   product image lightbox with navigation and click-to-zoom.
 * [Sawir Variation Gallery Tools for WooCommerce](https://wordpress.org/plugins/sawir-variation-gallery-tools-woocommerce/)—
   manage variation-specific gallery images.
 * [Sawir Role Capabilities Manager](https://wordpress.org/plugins/sawir-role-capabilities-manager/)—
   create custom user roles and manage capabilities.

## FAQ

### Do folders change my file URLs?

No. Folders are purely organizational (a hidden taxonomy on attachments). Files 
stay exactly where WordPress uploaded them.

### What happens if I deactivate or delete the plugin?

Nothing breaks. Your files are untouched; folder assignments simply stop being displayed.
Reactivate and they’re back.

### Is there a folder limit in the free version?

There is no paid version. Everything is free and unlimited.

### Where can I get support or report a bug?

Use the plugin’s support forum on wordpress.org, or contact us at [sawirstudio.com](https://sawirstudio.com)—
email ricardo@sawirstudio.com.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Sawir Media Folders” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Ricardo Sawir ](https://profiles.wordpress.org/sawirricardo/)

[Translate “Sawir Media Folders” into your language.](https://translate.wordpress.org/projects/wp-plugins/sawir-media-folders)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/sawir-media-folders/),
check out the [SVN repository](https://plugins.svn.wordpress.org/sawir-media-folders/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/sawir-media-folders/)
by [RSS](https://plugins.trac.wordpress.org/log/sawir-media-folders/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * Initial release: folder tree in the media grid, drag & drop for files and folders,
   drop-zone reordering (before/after/inside), folder filter dropdown in media modals.

## Meta

 *  Version **1.0.0**
 *  Last updated **1 day ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [attachments](https://wordpress.org/plugins/tags/attachments/)[folders](https://wordpress.org/plugins/tags/folders/)
   [media](https://wordpress.org/plugins/tags/media/)[media library](https://wordpress.org/plugins/tags/media-library/)
   [organize](https://wordpress.org/plugins/tags/organize/)
 *  [Advanced View](https://wordpress.org/plugins/sawir-media-folders/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/sawir-media-folders/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/sawir-media-folders/reviews/)

## Contributors

 *   [ Ricardo Sawir ](https://profiles.wordpress.org/sawirricardo/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/sawir-media-folders/)