DOCUMENTATION
Revolutionary Folders Documentation
Organize your media library, posts and pages into real, nestable folders with drag-and-drop. This guide covers installation, building your tree, bulk moves, per-user folders, and the developer hooks for shaping defaults.
Getting started
Install the plugin and create your first folder in two minutes.
Nesting & reordering
Build, re-parent and rename folders as deep as you like.
Bulk move & filter
Move many files at once and scope the library by folder.
Posts, pages & CPTs
Add a folder sidebar to any post type you choose.
Per-user & shared
Keep private trees or share a canonical structure.
Hooks & WP-CLI
Shape defaults in code and build folders from the terminal.
Introduction
Revolutionary Folders adds a folder tree to the parts of WordPress that need one most: the media library, the Posts and Pages screens, and any custom post type you choose. Instead of one flat, ever-growing grid, you get a familiar nestable sidebar you fill by dragging items in.
The most important thing to understand up front is that folders are virtual. They are an organizational layer stored in your database, not real directories on your server. When you drop an image into a folder, nothing moves on disk and no attachment URL changes, so every image you've already embedded keeps working. Deactivating the plugin leaves all your files exactly where they were.
Tip: Start with broad top-level folders that match how you think about content, such as Brand, Campaigns and Products, then nest as the need appears. A shallow tree you maintain beats a deep one you abandon.
Installation
Revolutionary Folders installs like any standard WordPress plugin. You can install it from the bundled .zip archive or directly from the Revolutionary Plugins hub.
- Upload the plugin. In your WordPress admin, go to Plugins -- Add New -- Upload Plugin and choose
revolutionary-folders.zip. Click Install Now. - Activate. Once installed, click Activate. A folder sidebar now appears on the Media -- Library screen.
- Choose where folders appear. Under Folders -- Settings, enable the post types you want to organize. Media is on by default; tick Posts, Pages or any CPT to add a folder tree there too.
- Verify your license. Paste your suite license key under Folders -- Settings -- License to unlock automatic updates, per-user folders, and priority support.
Heads up: The folder sidebar appears in the library's grid view. If your library is set to list view, switch to the grid icon at the top to see and use the folder tree.
Your first folder
Let's tame the media library by creating a folder and dropping a few files into it. The whole loop takes under two minutes.
- Open the library. Go to Media -- Library in grid view. The folder sidebar sits on the left, with All files selected at the top.
- Create a folder. Click + New folder at the bottom of the sidebar, type a name like
Brand, and press Enter. The folder appears in the tree with a live count of zero. - Drag files in. Click a thumbnail, or shift-click several, and drag the selection onto the Brand folder. Release, and the count updates immediately.
- Filter to it. Click the Brand folder. The library now shows only that folder's files. Click All files to clear the filter.
- Nest a subfolder. Right-click Brand and choose New subfolder, name it
Logos, then drag your logo files in. You now have a two-level tree.
That's the full loop: create, drag, filter, nest. Everything else in this guide is a variation on those four moves.
Nesting & reordering
Folders nest as deep as you like. Build a structure that mirrors how your team thinks, then rearrange it any time without touching the files inside.
- Create a subfolder: right-click any folder and choose New subfolder, or drag an existing folder onto another to re-parent it.
- Reorder: drag a folder up or down within its level. The order you set is the order everyone sees.
- Rename: double-click a folder name to edit it in place. Renaming never affects the files inside.
- Collapse & expand: click the caret on any folder with children to fold a branch out of the way.
There is no nesting limit, but a tree three or four levels deep usually stays the most usable. You can re-parent a whole branch at once: dragging a folder carries every subfolder and file it contains.
Bulk move & filter
Moving a single file is a drag. Moving fifty is the same drag. Select a range with shift-click or pick individual items with cmd/ctrl-click, then drag the whole selection onto a folder. A floating chip shows the count as you move.
- Multi-select: shift-click selects a contiguous range, cmd/ctrl-click toggles individual items.
- Drop to move: drag the selection onto any folder in the sidebar; the count and the source folder both update live.
- Filter, then search: click a folder to scope the library to it, then use the search box to find within that folder only.
- Uncategorized view: a built-in filter surfaces every item not yet in a folder, so you can clear the backlog.
| Action | How | Result |
|---|---|---|
| Move one file | Drag a thumbnail onto a folder | File is filed; URL unchanged |
| Move a batch | Shift-click a range, then drag | All selected items move together |
| Filter library | Click a folder in the sidebar | Grid shows that folder only |
| Find unsorted | Click the Uncategorized filter | Lists every item not in a folder |
| Remove from folder | Drag back to All files | Item un-filed; nothing deleted |
Tip: Dragging a file to All files un-files it without deleting anything. To actually delete media, use WordPress's normal delete, folders never touch the underlying attachment.
Inside the media modal
Folders aren't confined to the library screen. The same tree appears in the media modal, the panel that opens when you click Add Media, set a featured image, or build a gallery. Filter to a folder, pick your asset, and insert it without scrolling past hundreds of unrelated files.
- Block editor: the folder sidebar appears in the image, gallery and featured-image pickers.
- Page builders: any builder that opens the standard WordPress media frame gets the sidebar automatically, including Elementor and Beaver Builder.
- Sticky filter: the folder you last picked stays selected as you move between insert flows in the same session.
Because the modal reuses the core media frame, there is nothing to configure. If a builder opens the native picker, the folder tree is there.
Posts, pages & CPTs
Enable folders for any post type under Folders -- Settings and a folder sidebar plus a Folder column appear on that type's list screen. This is the cleaner alternative to inventing a private category taxonomy just to keep the editor organized.
- Folder column: see at a glance which folder each post or page belongs to.
- Bulk move: select rows with the checkboxes, choose Move to folder from Bulk Actions, and pick a destination.
- Quick filter: click a folder in the sidebar to filter the list to it, the same way the media library works.
- CPT support: products, portfolio items, docs, any registered post type can opt in.
Note: Content folders are purely an admin organizing tool. They are not taxonomies and never appear on the front end, so they won't show up in archives, menus, or your theme's category lists.
Per-user & shared folders
By default, folders are per-user, so each editor builds and sees their own tree. A teammate's "Drafts 2026" folder never clutters your sidebar, and your structure never gets reorganized out from under you.
When a team needs a single source of truth, switch a folder to shared. Shared folders are visible to everyone with access to that post type and can be edited collaboratively. You can mix the two: keep personal working folders private while sharing the canonical Brand and Products trees.
| Mode | Who sees it | Best for |
|---|---|---|
| Per-user | Only the user who created it | Personal working sets, drafts, scratch organizing |
| Shared | Everyone with access to the post type | Brand assets, product photos, team-wide structure |
Access to manage shared folders respects WordPress capabilities. Set the default mode for new folders, and which roles may create shared ones, under Folders -- Settings -- Permissions.
Hooks & filters
Developers can shape folder behavior with standard WordPress filters and actions. The most common need is seeding a default folder for fresh installs or per-role onboarding. Use the revfolders_default_folder filter to set which folder new uploads land in when no folder is selected:
add_filter( 'revfolders_default_folder', function( $folder_id, $user_id, $post_type ) {
if ( 'attachment' === $post_type ) {
return revfolders_get_id_by_name( 'Unsorted' );
}
return $folder_id;
}, 10, 3 );
Use the revfolders_post_types filter to register a custom post type for folders in code, instead of toggling it in settings:
add_filter( 'revfolders_post_types', function( $types ) {
$types[] = 'portfolio';
return $types;
} );
And the revfolders_item_moved action fires whenever an item changes folders, handy for logging or syncing to an external DAM. Other useful hooks include revfolders_before_delete_folder, revfolders_user_can_share, and revfolders_tree.
WP-CLI
For migrations and bulk setup, Revolutionary Folders ships WP-CLI commands so you can build and fill folders without clicking. Create a folder, then move matching attachments into it in one pass:
# Create a top-level folder and a nested child
wp revfolders create "Brand"
wp revfolders create "Logos" --parent="Brand"
# Move every PNG uploaded before 2024 into "Logos"
wp revfolders move --folder="Logos" --mime=image/png --before=2024-01-01
# List the full tree with item counts
wp revfolders tree
Every command supports --user to target a specific user's per-user tree, and the standard --dry-run flag so you can preview a bulk move before committing it.
Troubleshooting
Most issues come down to view mode or caching. Work through these first:
- No folder sidebar: the tree only shows in the library's grid view. Switch from list to grid using the icons at the top of Media -- Library.
- Folders missing for posts/pages: enable that post type under Folders -- Settings. Media is on by default, content types are opt-in.
- Counts look stale: a page cache or object cache can serve an old tree. Clear your cache, the counts recalculate on the next load.
- Folder not in the media modal: confirm the builder opens the native WordPress media frame. Builders with a fully custom picker bypass the core frame and won't show the sidebar.
- Drag does nothing: usually a JavaScript conflict from another plugin. Check the browser console and disable other plugins one at a time to isolate it.
Tip: If your tree ever looks out of sync, run wp revfolders recount to rebuild every folder's item count from scratch. It's safe to run any time and never touches the files themselves.
FAQ
Frequently asked questions
No. Folders are a virtual organizing layer stored in the database. No file moves on disk and no attachment URL changes, so every embedded image keeps working exactly as before.
No. You can create unlimited folders and nest them as deep as you like. In practice a tree three or four levels deep stays the most usable, but the plugin imposes no cap.
Never. Folders are an admin-only organizing tool. They are not taxonomies, so they don't appear in front-end archives, menus, or your theme's category lists.
Your media and content are untouched, because folders never moved anything. The structure is stored separately and reappears intact the moment you reactivate.
Yes. Folders are per-user by default, so each editor keeps a private tree. When you want a single shared structure, switch specific folders to shared and the whole team works from the same one.
Was this helpful?
Browse the rest of the documentation or see what is included in each plan.
Back to all docs