Shelfwright Pro
1. Install
- In WordPress, go to Plugins → Add New → Upload Plugin and upload the plugin zip as it is (do not unpack it):
shelfwright-pro-1.0.9-marketplace.zipfrom WPBay, Pluggable, PlugNest or CodeGrape, orshelfwright-pro-1.0.9.zipfrom Gumroad. From itch.io or Payhip you getshelfwright-pro-1.0.9-package.zip: unpack that one first, and upload theshelfwright-pro-1.0.9.zipinside it. - Click Activate. If the free Shelfwright plugin is installed, Pro takes over automatically and keeps every folder.
- Open Media → Library. The folder tree is on the left.
Requirements: WordPress 6.5 or later and PHP 7.4 or later. AI sorting needs a current Chrome, Edge or Firefox on the computer that runs it.
2. Licence key and updates
Bought on a marketplace: no key needed
If you bought Shelfwright Pro on WPBay, Pluggable, PlugNest, CodeGrape, itch.io or Payhip, you have the marketplace build. It needs no licence key: every Pro feature is active as soon as you activate the plugin, and it never contacts a licence server.
Updates: the marketplace makes new versions available in your account (on WPBay under My Account → My Downloads; on Payhip through the link in your receipt). Upload the new zip under Plugins → Add New → Upload Plugin and click Replace current with uploaded. Your folders and settings are kept.
Bought on Gumroad: enter your licence key
Go to Settings → Media, find Shelfwright Pro in the Folders section, paste the key from your Gumroad receipt and click Activate. A 1-site licence can be activated twice, so you can move a site without asking us; the 10-site licence works the same way for ten sites.
For Gumroad licences: if a licence ends, all folders keep working, and so do drag and drop, uploads into folders, the editor filter, galleries and imports. AI sorting, colours and ZIP downloads pause until the licence is renewed. Marketplace copies have no expiry.
3. The folder tree

- All files shows the whole library; In no folder shows files that are not in any folder yet.
- New folder makes a folder inside the folder that is open (or at the top). Type the name and press Enter.
- Rename: double-click a folder, or press F2.
- More actions: the ⋯ button or a right-click: new subfolder, rename, delete (and in Pro: colour, Download as ZIP).
- Move or reorder folders: drag a folder onto another to put it inside; drop it on the top or bottom edge of a folder to place it before or after; drop it on All files to move it to the top level.
- Find a folder filters the tree as you type.
- Resize the tree by dragging its right edge.
- Delete a folder: its files stay in the Media Library and its subfolders move up one level.
Keyboard
| Key | What it does |
|---|---|
| ↑ ↓ Home End | Move between folders |
| → ← | Open or close a folder, or go to its parent |
| Enter or Space | Show the folder's files |
| F2 | Rename |
| Delete | Delete the folder (you are asked first) |
| Shift+F10 or the menu key | More actions |
The tree follows the WAI-ARIA tree pattern, so screen readers announce folders, levels and which one is open.
4. Putting files in folders
- Drag a file onto a folder. When you drag from an open folder, the file moves: it leaves that folder. Hold Ctrl or Alt to copy it instead: it stays in both. From All files or In no folder, dragging adds the file to the folder. (You can make dragging always add under Settings → Media.)
- Several files at once: click Bulk select, pick the files, then drag any of them; the others come along.
- Take a file out of a folder: drag it onto In no folder. Dragged from All files, this takes the file out of every folder.
- Subfolders: with Show the files in subfolders too on (Settings → Media), an open folder also shows its subfolders' files, and moving or taking a file out of that folder also takes it out of those subfolders.
- Attachment details: click a file and tick its folders. A file can be in several folders at once without being copied. Every tick and untick is saved on its own as you click, so to move a file this way, tick the new folder first and then untick the old one.
- List view has the same tree, a Folders column and a folder filter next to the date filter. Drag rows (or the checked rows) onto a folder.
When a change cannot be saved: a move first adds the file to the new folder and checks in the database that it is there; only then does the file leave the old folder. If the new folder could not be saved, the file stays in all its old folders and the message says how many files were not changed (for example "1 file was not changed (“Logo.png”): The folders could not be saved"). Nothing is lost: try the move again. Files you are not allowed to edit are counted separately ("skipped (no permission)"). In the attachment details, a folder tick that could not be saved shows Folders not saved with a Retry button.


Folders are virtual. Moving a file between folders never moves it on the server, so its address, the image sizes and every link to it stay exactly the same.
5. Uploading into a folder
Open a folder and upload: with Add Media File, by dropping files onto the library, or in the editor's media dialog with a folder chosen in the filter. New files go straight into that folder. Files uploaded from All files or In no folder go into no folder (or, with Pro's automatic sorting, into the folder the AI is sure about).
If the open folder was deleted meanwhile (for example in another tab), or the file could not be put into it, the upload still succeeds and a message names the files that are in no folder, so you can drag them where they belong.
6. Folders in the editor
Every media dialog in the editor (Image, Gallery, Cover, Media & Text blocks, the classic editor's Add Media) has a Filter by folder dropdown next to the date filter, laid out for WordPress 7's media toolbar.

7. Folder galleries
Add the Folder gallery block, pick a folder and choose columns, image size, link and order. Images you add to the folder later appear in the gallery automatically.

Shortcodes work too, also in page builders:
| Shortcode | Shows |
|---|---|
[gallery folder="logos"] | The images in the folder with the slug logos (or an ID). |
[gallery folder="logos" include_children="yes"] | Also the images in its subfolders. |
[gallery media_category="flowers,mosses"] | Enhanced Media Library syntax: images in either folder. |
[gallery media_category="california+flowers"] | Images in both folders. |
[gallery folder="logos" limit="6" orderby="date" order="DESC"] | The six newest. |
[playlist media_category="podcasts" type="audio"] | An audio playlist from a folder. |
8. Coming from Enhanced Media Library
- Activate Shelfwright Pro. Your Enhanced Media Library categories appear as folders right away, with their subcategories and files: Shelfwright uses the same
media_categorytaxonomy, so nothing is copied or converted. - Deactivate Enhanced Media Library (Shelfwright reminds you until you do).
On the first activation Shelfwright also keeps two of your Enhanced Media Library choices: whether category pages were public (and their URL), and whether filters included subcategories. Taxonomies you created in Enhanced Media Library, and Categories or Tags you put on media, are registered again with the same names. [gallery media_category="…"] shortcodes keep working, including the + and , syntax, type, limit and orderby.
9. Importing from other folder plugins
When Shelfwright finds folders made with FileBird, Real Media Library, Media Library Folders, Folders (Premio), HappyFiles, WP Media Folder, Wicked Folders, Media Library Assistant or extra Enhanced Media Library taxonomies, it shows a card at the top of the tree. Click Import.

- The other plugin's data is only read, never changed. Deactivate it once you are happy.
- Folders with the same name in the same place are merged instead of doubled. Files keep the folders they already have in Shelfwright; the import only adds.
- Real Media Library shortcuts become extra folders for the original file.
- The folders are created first (200 at a time), then the files are put into them in batches of 500 links. The card shows the progress.
If the import stops, or something cannot be saved
- Continue an interrupted import: if the page was closed, the connection dropped or the server answered with an error, open Media → Library again. The card says This import is not finished; click Import and it continues where it stopped. The position is kept on the server, so nothing is read twice or skipped, also when another administrator continues it.
- See what failed: when every link has been read, an import with failures does not say it is done. The card shows Import not finished, how many files could not be put into their folders and how many folders could not be created, and lists them with the reason. The first 20 are shown; click Show all … more for the whole list, or Download the list (CSV) to keep it. Everything else from the import is already saved.
- Retry failed: writes the failed folders and files again (a folder that was deleted during the import is created again). Fix the cause first if the reason points to one (for example a database that was full or read-only), then click Retry. When everything is written, the import is done.
- Finish without them: if some items cannot be saved and you want to stop, click Finish without them. You are asked to confirm, with the number of files and folders that will be left out. The import is then marked done; the left-out files simply stay in the other plugin's folders (unchanged), and you can put them into folders yourself. Download the CSV list first if you want a record of them.
Links that point to a folder the other plugin itself no longer has, and links to files that were deleted from the Media Library, have nothing to import. They are counted in the final message, not listed as failures.
Each source is imported once; afterwards its card does not come back. Not now hides a card in this browser (an unfinished import always shows its card again).
10. AI sorting
An image-recognition model (Google SigLIP 2) compares each image with your folder names and suggests the best folder. It runs in your browser: your images are never sent anywhere, and there is nothing to pay per image.
- Under Settings → Media → AI sorting, tick Allow downloading the image-recognition model. The model (about 410 MB) is downloaded once per browser from Hugging Face and kept in the browser's cache.
- In the folder tree, click Sort with AI. Choose which images (in no folder, the open folder, or all) and which folders the AI may choose.
- Click Find the right folders. The first time, the model downloads; then the AI looks at the images one by one and shows its progress.
- Review: every image shows the suggested folder and how sure the AI is. Suggestions at or above your threshold (60 % by default) that also match the image clearly enough are ticked; the others say "No folder fits". Change any folder or untick any image, then click Put … images in their folders.

Better results: use clear, visual folder names ("Team photos", "Chairs", "Event posters", "Logos"). The AI also sees the parent folder ("Products / Chairs"). Untick folders that are not about what is in the picture (like "2026" or "Press kit").
Sorting new uploads automatically
Tick Sort new images automatically when they are uploaded outside a folder and the AI finds a good match under Settings → Media (downloading the model must be allowed too). The sorting runs in the browser the next time someone opens the Media Library. Images uploaded outside a folder are then put into the folder the AI is sure about (above your threshold), and a short message says where each went. Uploads into an open folder are never changed.
11. Colours and ZIP downloads
- Colour: open a folder's ⋯ menu and pick a colour; the folder icon takes it on.
- Download as ZIP: in the same menu. The ZIP holds the original files, with subfolders as directories. Your server needs the PHP zip extension (almost all hosts have it). If some files cannot be read on the server (for example a file removed from disk or offloaded to another storage), the ZIP still downloads with the other files, contains a
MISSING-FILES.txtlisting the missing ones, and its file name says how many are missing (for examplelogos-2-files-missing.zip).

12. Settings reference
All settings are under Settings → Media → Folders.

| Setting | What it does |
|---|---|
| Folder tree | Show the tree beside the Media Library (grid and list view). |
| Insert media | The folder filter in the editor's media dialogs. |
| Uploads | New uploads go into the open folder. |
| Dragging files | Move (default; hold Ctrl or Alt to copy) or Add. |
| Subfolders | Show the files in subfolders too when a folder is open. |
| Counts | The number of files next to each folder. |
| Deleting Shelfwright | Also delete all folders when the plugin is deleted (off by default). |
| Folder pages | A public page per folder, like a category archive (off by default). |
| Shelfwright Pro | The licence key (Gumroad), or the marketplace status. |
| AI sorting | Allow the model download, sort new uploads automatically, and the confidence threshold (30–95 %). |
13. Troubleshooting
| Message or problem | Solution |
|---|---|
| No folder tree | Check Folder tree under Settings → Media. On narrow screens the tree is above the library. |
| A notice about Enhanced Media Library | Deactivate Enhanced Media Library; your categories are already folders. |
| "The AI model could not be downloaded" | The browser must reach huggingface.co. Try another network, or check a firewall or ad blocker. |
| The AI is unsure about most images | Use clearer folder names and untick folders that are not about what is in the pictures. Lower the threshold under Settings → Media if suggestions look right. |
| "This server cannot make ZIP files" | Ask your host to enable the PHP zip extension. |
| "There is already a folder with that name here" | Folders in the same place need different names. |
| "Import not finished. … could not be put into their folders." | See section 9: check the reasons in the list, then click Retry failed, or Finish without them to leave them out. |
| "This import is already running" | Another tab or administrator is running the same import. Wait a moment and click Import again; it continues the same import. |
| "… files were not changed (…): The folders could not be saved" | The named files stayed in their old folders. Try again; if it keeps failing, ask your host to check the database. |
| "… added but still in its old folder too" | The file is in the new folder; taking it out of the old one failed. Drag it again, or untick the old folder in its details. |
| "A folder you ticked no longer exists, so nothing was changed" | Another tab or administrator deleted that folder. Reload the page and tick another one. |
| "The folder that was open was deleted, so the file is in no folder" | Open In no folder and drag the named files into a folder. |
| Gallery shows no images | Check the folder slug in [gallery folder="…"] (Media → Folders lists them), and that the folder holds images. |
| "This key has already been activated the allowed number of times" | Contact us through the store where you bought Pro and we will reset it. |
14. Privacy and external services
- Folders are stored in your WordPress database as a standard taxonomy. Nothing is sent to Karelia Labs.
- AI sorting downloads the SigLIP 2 model files from Hugging Face (huggingface.co) into the browser of the person who runs it, once, after you allow it in the settings. Images are read from your own site and analysed on that computer; no image, file name or folder name is sent to any service.
- Licence (Gumroad copies): the key is checked with Gumroad when you activate it and once a day. Marketplace copies never contact a licence server.
15. Deactivating, deleting and your folders
- Deactivating removes nothing.
- Updating keeps everything.
- Deleting Shelfwright Pro under Plugins → Delete:
- If the free Shelfwright plugin is still installed, only the licence data (Gumroad copies) is removed; everything else stays for the free plugin.
- Otherwise Shelfwright removes its settings, the licence data, its import progress and the list of import failures, the record of which plugins were imported, and the marks on images waiting for automatic sorting. Your folders stay, with the files in them, their order and their colours (they are the same media categories Enhanced Media Library uses), so you can reinstall or switch back and find everything as it was.
- To delete the folders too, tick Also delete all folders when Shelfwright is deleted under Settings → Media before deleting the plugin. Then the folders, their order and their colours are deleted as well; the files themselves stay in the Media Library, in no folder.
- On a multisite network this is done for every site, and Also delete all folders is a setting of each site.
- Not on the server: the AI model (about 410 MB) stays in the browser cache of everyone who used AI sorting until they clear it, and each browser keeps small preferences (open folders, hidden cards, folder changes not saved yet) in its local storage.
- Your files are never moved, changed or deleted by Shelfwright.
Support
Contact us through the store where you bought Shelfwright Pro: on WPBay, open a ticket from your account; on Pluggable, PlugNest, CodeGrape or itch.io, message us there; for Gumroad and Payhip, reply to your receipt.
Shelfwright is made by Karelia Labs. Licensed under the GPL v2 or later. AI sorting uses Transformers.js (Apache-2.0), ONNX Runtime Web (MIT) and SigLIP 2 (Apache-2.0, Google).