VergeLabs Media Library releases
Maintained fork of Enhanced Media Library by wpUXsolutions. WordPress media taxonomies, MIME types and grid filters. GPLv2 or later.
by VergeLabs · github.com/vergelabsnathan/vergelabs-media-library · website
Install
The author publishes release zips, so WP-CLI can install straight from GitHub:
wp plugin install https://github.com/vergelabsnathan/vergelabs-media-library/releases/download/v3.16.0/vergelabs-media-library.zipReadme
=== VergeLabs Media Library – Media folders, categories and AI alt text === Contributors: vergelabsnathan Tags: media library, media folders, alt text, accessibility, media categories Requires at least: 6.5 Tested up to: 7.1 Requires PHP: 7.4 Stable tag: 3.16.1 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html
Media library folders, categories and tags, plus AI alt text and captions. The maintained successor to Enhanced Media Library, fixed for WordPress 7.
Description
Folders for your media library, categories that stay in WordPress, and alt text written for you.
VergeLabs Media Library is a maintained fork of Enhanced Media Library by wpUXsolutions, which has had no release since July 2024. It repairs the media toolbar on WordPress 7.0 and clears the PHP 8 warnings. Everything else is the plugin you already know.
Based on Enhanced Media Library by wpUXsolutions, and licensed GPLv2 or later as the original is.
Folders
A folder tree sits beside the media library. Drag files onto a folder to file them, drag folders into each other to rearrange, rename in place, colour them, and arrange them in whatever order you want. It is in the list view, in the grid, and in the media panel that opens when you insert an image into a post — which is where a media library is most used, and where a folder plugin most often is not.
Your folders are ordinary media categories. Nothing is kept in a private table of ours. That means your structure is readable by WordPress itself, by your theme, by WP-CLI and by any other plugin — and it is still there, intact and usable, if you ever remove this plugin. A folder plugin that stores your organisation somewhere only it can read is a folder plugin you cannot leave.
A file can be in more than one folder. Dragging a file moves it, exactly as it does on your desktop. Hold Ctrl while dropping and it is added to that folder as well -- the same photo in Products and in Autumn Campaign without a second copy of it existing, which is the thing single-folder plugins cannot do. If you want the one-folder promise kept absolutely, there is a setting that makes every drop a move.
A folder can be a gallery. Add the Folder gallery block in the block editor -- or the Folder gallery element in Elementor, Divi or WPBakery, or drop [vergeml_gallery folder="12"] anywhere shortcodes work -- pick a folder, and it shows every image in it. Grid or carousel, with a built-in lightbox if you want one. It stays a folder rather than becoming a list of files: put a new image in the folder and every page using that gallery has it, with nothing re-edited. WordPress's own gallery block freezes a list of images at the moment you insert it.
One set of folders in every language. With Polylang or WPML, a translated copy of an image goes into the same folders as the original, and the tree shows the same folders whichever language you are working in.
Smart folders answer questions. Above your folders sit five that nothing was ever filed into: Unused media, Missing alt text, Large files, Unattached, and This month. Each is a live view of the library. Unused and Large need one scan -- a click, a progress count, done -- which reads every post once to learn which files are genuinely referenced: embedded images, pasted URLs, featured images, galleries. "1,400 images have no alt text" and "2 GB of this library is unused" are the two numbers most worth knowing about a media library, and no folder plugin can tell you either.
Uploads land where you are. Upload while a folder is open and the files arrive filed into it -- no second step. With All files open, uploads arrive unfiled, exactly as before.
A folder can leave as a ZIP. Pick a folder, choose Download as ZIP, and its files -- sub-folders included, as directories -- arrive as one archive named after the folder.
Already using another folder plugin? Settings → Import Folders reads FileBird, Premio Folders, WP Media Folder, HappyFiles, Wicked Folders, Real Media Library and Enhanced Media Library. It shows you what it will do before it does it, says which folders will merge with ones you already have, and the whole import can be undone from the same screen. Nothing is taken from the other plugin — it keeps everything exactly as it was, so you can go back at any time.
Sorting a library nobody ever filed
The Librarian shows you the folders before it makes any. Point it at a library that was never organised and it draws the structure it would build from your own files: every folder with the number of files it would hold, a few of them as thumbnails, and a line saying why those files were grouped together. Rename a folder before it exists, or say "not this one" and those files stay where they are.
Two ways to sort, and one of them needs nothing. By date and file type, built from what WordPress already knows -- no account, no licence, nothing sent anywhere. Or by subject, grouped from what the pictures show, which is the part that uses the AI service described below.
Undo is the feature, not the apology. Every assignment the Librarian makes is written down, so undoing it removes exactly what it did and nothing else. A file you moved yourself in the meantime is left where you put it and reported. A folder it created is deleted only if it is still empty; if you have put your own files in it, it is kept and you are told. It only ever touches files that had no folder, so a library you organised by hand is unchanged.
And once it has looked, the descriptions become folders. The folder panel grows a group of its own — Photos, Screenshots, Documents, Logos, pictures with people in them, pictures with text in them — built from what was found rather than from anything you filed. Empty ones are not shown, and the group says how much of your library it is drawn from.
Nothing that cannot be interrupted. Applying works in small batches, so it does not time out on shared hosting. Pause it, close the tab, pick it up where it stopped.
External services
This plugin can send images to an AI service run by VergeLabs, at https://ai.vergelabs.nl/v1. It does so only when you ask it to.
Nothing is sent until you enter a licence key and start a run. With no key the AI screens do nothing: no request on page load, none on upload, none in the background. Demo mode invents captions locally from the file names and sends nothing anywhere, and the Librarian's date-and-type scheme needs no service at all.
Library counts go only if you switch them on. Under Library settings, "Share library counts" (off by default) posts to the same service once a day: how many files and folders, how deep the folders nest, files added in the last thirty days, and the plugin, WordPress and PHP versions with the site language, alongside the licence key and the site address. Never a file name, a title, a folder name or a picture.
What is sent, when you do start a run: a downsized copy of the image being described (never the original file), its file name, its MIME type, your site's address and your licence key -- one request per image, only while a run is in progress. What comes back is a caption, alt text, tags and a suggested title. The service processes the image and discards it; what it keeps is a usage count.
What the service does with it, in writing. Sub-processors names every company that touches the data and where each one is. What is kept, and for how long answers that per category — images are kept for no time at all, and it says which file in the code proves it. Data Processing Agreement, if you need one.
Service terms: https://vergelabs.nl/voorwaarden -- Privacy policy: https://vergelabs.nl/privacy
What this fork fixes
- The WordPress 7.0 toolbar layout. WP 7.0 turned the media toolbar into a fixed two-column CSS grid and gave placement to its own two filters only. The extra filters this plugin adds had nowhere to go, so they stacked into a 300px-tall block with every label sitting above the wrong control. The toolbar is one tidy row again, whatever number of filters you enable.
- The author filter drew on top of the type filter. It rendered with the same HTML id as the type filter, which was invisible under the old layout but made the two overlap once WordPress started placing elements by id. It now uses the id its own label was already pointing at, which fixes the overlap and the mislabelled control together.
- PHP 8 warnings. The four settings handlers read their nonce field before checking whether it was there. Also four
get_terms()calls still using the argument order deprecated back in WordPress 4.5.
Moving over from Enhanced Media Library
Activating this plugin copies your existing Enhanced Media Library settings across: taxonomies, MIME types, library and filter options. The originals are left untouched, so nothing is lost if you switch back. Deactivate Enhanced Media Library before activating this one, since running both at once means two copies of the same taxonomies.
Categorize by Anything!
- Unlimited categories & tags for media items
- Unlimited custom taxonomies: create in a few clicks
- Unlimited third-party taxonomies: assign to the media library
Configurable Filters
- Show / hide data, author, taxonomy filters
- Per taxonomy filters
- Configurable outcome of the filtering: include / exclude child categories
Enhanced Media Library
- Show captions: title, filename, or caption field for each media item
- Bulk selection: no special mode anymore, faster editing
- Drag'n'Drop re-order right in the media library
- Infinite scroll and manageable loads per page options
Dynamic Galleries / Playlists
Additional parameters for the [gallery] and [playlist] shortcodes:
media_categoryor any other taxonomymonthnumyearlimitof media items to show
MIME Types Management
Add or remove file types, allow or disallow uploading. The plugin incorporates a file type into media filters if you wish.
Feels Native to WordPress
We spent hours to make Enhanced Media Library operates as though it were native WordPress functionality. All plugin features are incorporated into WordPress UI seamlessly.
Developer-Friendly
- Core hooks just work for media taxonomies and media items
- All taxonomies supported: custom and code-registered
- REST API supported out of the box
- No custom tables in the database
- Deactivation makes no harm to data: all media items and taxonomies remain after deactivation
Export / Import / Restore Plugin Settings
If you need to move your media library to another website you should export and import WordPress content with WordPress built-in export/import. But to make this plugin work on the new site with the same settings you are provided with the export/import feature.
Multisite compatible
Network activate the plugin and choose which options will be available to your admins.
Support
Questions and problems go to the issue tracker, which is read by the person who maintains the plugin.
Compatible with the Plugins:
- Advanced Custom Fields
- WooCommerce
- FooGallery - How to use?
- Anything Order by Terms
- Search & Filter
- Document Gallery
- Jetpack Carousel
- Jetpack Tiled Galleries
- Simple Lightbox
- Justified Gallery
- Meow Gallery
- Meow Lightbox
- MetaSlider
- Responsive Lightbox & Gallery
- Compress JPEG & PNG Images (TinyPNG)
Please let us know if you find any issue with the plugins from the list above or others.
Incompatibility
Please notice that you use Enhanced Media Library with other plugins that add media categories, media folders, or manage MIME Types at your own risk. We cannot guarantee their compatibility because of the different approaches to the same functionality. We do not recommend using other media library (folder) plugin at the same time with the Enhanced Media Library. Please choose the one you prefer.
Useful Links
- Source and issue tracker
- Enhanced Media Library, the plugin this one is forked from
- Upstream documentation, still accurate for the parts this fork did not change
Read the full README on GitHub →
Releases
| Tag | Published | Asset | Downloads |
|---|---|---|---|
| v3.16.0 | Sep 2, 2026 | vergelabs-media-library.zip | 0 |
| v3.15.0 | Sep 2, 2026 | vergelabs-media-library.zip | 0 |
| v2.10.0 | Aug 21, 2026 | vgml-final.zip | 0 |
| v2.9.8 | Aug 19, 2026 | verge-media-library-2.9.8.zip | 0 |
| v2.9.7 | Aug 18, 2026 | verge-media-library-2.9.7.zip | 1 |
| v2.9.6 | Aug 18, 2026 | verge-media-library-2.9.6.zip | 1 |
| v2.9.5-fix | Aug 18, 2026 | verge-media-library-2.9.5.zip | 1 |
| v2.9.5-fix | Aug 18, 2026 | after-toolbar.png | 0 |
| v2.9.5-fix | Aug 18, 2026 | before-toolbar.png | 0 |