What’s new in FileDeck — the features, improvements and fixes we ship, newest first.
Releases go out as soon as they’re ready — sometimes several in a day, sometimes a quiet week. Every entry below shipped to production.
Lighter on every page of your site
FileDeck now reads about 150KB less code on visitor-facing requests. The admin-only parts — the CSV importer, the migration tools, the analytics screen and a few others — are loaded when you open those screens, and skipped entirely the rest of the time.
Work your visitors were paying for
A page on your site that shows no library at all was still loading every part of FileDeck, including screens that only ever appear inside your WordPress admin. That's a fixed cost on every request your server handles, whether or not FileDeck has anything to do on that page.
Those parts now load only when they're actually needed. Nothing about the admin screens changes — they load exactly what they always did, when you open them.
This follows the faster large libraries improvement, and the two compound: less code read per request, and a fixed number of database queries per library page.
Fixes & improvements
- Admin-only code is no longer loaded on front-end requests, reducing the work your server does on every page.
A shorter, better organised admin menu
FileDeck's menu had grown to seventeen items under Documents, all sitting at the same level in whatever order they happened to arrive. The screens that do the same job are now grouped behind one menu item each, so the menu is a third of the length and it's obvious where to look for something.
Three groups instead of nine separate items
Getting documents into FileDeck used to be spread across four places. It's now one item, Import & Export, with a tab for each way in: upload files, bulk add from the Media Library or a CSV, and migrate from another plugin.
Insights gathers everything that reports on your library — analytics, the activity log, and review cycles. People gathers everything about the people using it — download leads, change subscribers, and acknowledgments.
Fields now sits with Document Categories and Document Tags, alongside the other things that describe what a document is.
Nothing moved out from under you
Every screen kept its own address, so bookmarks, links in our documentation and anything you've saved all still work — they simply open inside the new group, with the tabs available to move around.
If a group only has one screen you can reach, there's no group: it stays a plain menu item. So the free version still shows Upload Documents exactly where it was, and if your role only grants you some of the screens, you only see tabs for those.
Fixes & improvements
- The FileDeck admin menu is grouped into Import & Export, Insights and People, and Fields has moved next to Document Categories and Document Tags.
Large libraries load faster
A library page now costs your site the same small, fixed amount of database work whether it lists ten documents or five hundred. If you publish a big library — especially one where documents have thumbnails — the page should feel quicker, and your host should notice the difference too.
The same page, a fraction of the work
Every document in a library points at a file, and often at a thumbnail image as well. FileDeck used to look those up one document at a time while building the page, so the work grew with the size of the library: a five-hundred-document library asked the database for roughly a thousand things it could have asked for in one go.
It now fetches them together, once, for the whole page. On a test library of three hundred documents the page went from hundreds of database queries to eleven — and it stays at eleven as the library grows.
Nothing changes in how libraries look or behave, and there is nothing to turn on or reindex. The improvement applies to every layout, to search and filtering on large libraries, and to the free version as well as Pro.
Fixes & improvements
- Library pages no longer slow down in proportion to the number of documents on them.
Import a folder from Advanced File Manager
FileDeck Pro can now turn a folder managed by Advanced File Manager into a document library. Files become documents, sub-folders become nested categories, and the files are copied into your Media Library so FileDeck owns them. Find it at Documents → Migrate.
It will not import your whole site, on purpose
Advanced File Manager is a file *manager*, not a document library — it keeps no titles, descriptions, categories or access rules of its own. The only setting that matters here is the directory it browses, and out of the box that directory is your entire WordPress installation.
Importing that would turn every core, theme and plugin file into a document, so FileDeck refuses. The source only appears on the Migrate screen when the managed folder is a real content folder: inside wp-content/uploads, and not itself a WordPress install root.
If you don't see it listed, that's why. Point the file manager at a genuine documents folder — wp-content/uploads/documents, say — and reload.
We would rather this import be unavailable on some sites than have it able to reach anywhere on your server on the strength of a setting stored in the database.
What you get, and what you don't
Each file arrives as a document with a title tidied up from its filename, the category its folder implies, and the file itself as a Media Library attachment. Your originals are untouched, so the file manager keeps working and re-running is safe.
There is no description, date or access data to bring across — the source does not record any. So this import gives you the structure and the files; the descriptions are yours to add.
It also skips what isn't a document: anything WordPress would refuse as an upload (.php, .htaccess, .sh and friends), web assets it *does* allow but which rarely are documents (.js, .css, .html, .xml), hidden files, and the file manager's own trash and thumbnail caches. One import indexes up to 5,000 files.
If you have been using Advanced File Manager purely as an FTP client inside wp-admin, there may be nothing here worth importing — and that is a fine answer.
Full details: Migrate from Advanced File Manager.
Two more ways to style the download link
The download column now has six link styles instead of four, so the download control can be as prominent — or as quiet — as your design needs.
New: icon-only button and icon-plus-text link
Button with icon only is a compact button showing just the download icon, for tables where the download column should stay narrow. Icon and text link puts the icon beside a plain text link, for designs where a button is too heavy but a bare icon is too subtle.
Both sit alongside the existing Button, Button with icon and text, Icon only and Text link options under Documents → Settings → Display, or per library with link_style="button_icon_only" / link_style="icon_text" in the [filedeck] shortcode. On Pro, the icon still reflects the document's file type. The icon-only styles keep the download text as their accessible name, so screen readers announce "Download: Annual report" rather than an unlabelled link.
One-click import from Simple File List
Simple File List was closed on 23 July 2026 and removed from the WordPress.org plugin directory, pending review. If you use it, you can no longer install or update it.
FileDeck Pro now imports it in one click. Go to Documents → Migrate; if the data is on your site, Simple File List appears as a source. It works whether or not the plugin is still active, because it reads what is already on your own site rather than needing the plugin to run.
What comes across
Files, folders, descriptions, dates and access restrictions:
- The display name, or the filename where there isn't one, becomes the title
- Descriptions become the document description
- Sub-folders become nested categories — a file at
policies/hr/leave.pdflands in an HR category under Policies. Folders are the only grouping Simple File List has, so this is what preserves your structure - Role- and user-restricted files import as members-only, never as public
- Submitter names and comments are kept, so upload provenance isn't lost
- Every list is imported, not just the first
Your files move into the Media Library
This import is unusual in one respect. Simple File List keeps files in its own folder rather than the Media Library, so FileDeck copies each one in as a proper attachment.
Your originals are untouched — nothing is moved or deleted, the old plugin keeps working, and you can re-run safely.
We do it this way rather than linking to the old folder because that folder has no deny-all rule. A linked file would stay readable by anyone with the URL and could never be locked down, which would quietly undermine every file the import marks members-only. Copying files in is also what enables PDF thumbnails, content search and checksums on them.
Safe to re-run, safe to take your time
Each document records where it came from, so re-running picks up only what is new and an interrupted import resumes rather than duplicating.
Nothing is deleted, so there is no rush to deactivate anything. Import, check a few documents, put a [filedeck] shortcode or the Document Library block on the page that held your file list, and only then switch the old plugin off.
One thing to check afterwards: FileDeck's per-document gate is members-only or public, so a file restricted to a *specific* role or user list becomes members-only. Nothing that was restricted becomes public — but if you need finer control, apply a category password or role restriction after importing.
Full details: Migrate from Simple File List.
Large uploads now work from the Upload Documents screen
Resumable chunked uploading shipped earlier today, but only as a REST API — the Documents → Upload Documents dropzone was still sending each file in a single request. So a large file dropped on that screen hit the same host upload limit as before, despite the feature being available underneath.
That's fixed. The dropzone now uses the chunked path automatically.
What changed
Drop a file as usual. Anything small enough to fit in one request still goes the simple way — no extra round trips for a 2 MB PDF. Anything larger is sliced and sent in pieces, so your host's upload_max_filesize stops being the ceiling.
While a large file uploads you'll now see a real percentage rather than an indeterminate spinner, because the browser knows exactly how many bytes the server has acknowledged.
Interruptions resume
If the connection drops mid-upload, FileDeck asks the server how much it actually received and continues from there, retrying a few times with a short backoff before giving up. That is the difference between losing 20 seconds and losing a 300 MB upload.
Files larger than the site's limit are now rejected immediately, with the limit named, instead of after a long upload.
If you tried a large file earlier today and hit your host's limit, try again — it will go through now.
AI search reaches every document, and previewed audio and video can be scrubbed
Two things that quietly limited large libraries are gone this release: semantic search that only looked at part of your collection, and media previews you could only play from the beginning.
AI search and Ask now cover the whole library
Semantic search and "Ask this library" score documents differently, and the change matters most if you have a lot of them. Previously a large library was only partly searchable by meaning — the results were drawn from a slice of it, and which documents fell inside that slice depended on when they were last indexed rather than on how well they matched the question.
Every document in the library is now considered for every question, however many you hold. Existing libraries repair themselves in the background over the first few minutes after updating; there is nothing to reindex and no AI provider usage involved in the repair.
Audio and video previews can be scrubbed
Previewing an audio or video document inline used to mean playing it from the start — dragging the scrub bar did nothing, because the browser could not request a section of the file. Seeking works properly now, and an interrupted download of a large file resumes instead of starting over.
Fixes & improvements
- Renaming a document category no longer disturbs search on large libraries. Previously a category rename — or simply saving a category — rebuilt the entire search index in the background, and search results were incomplete until it finished, which on a big library could take hours.
- The Filename column and search index show a document's real filename. Documents held in protected storage displayed an internal storage name instead.
- Filter bars build faster on libraries with several custom-field filters.
- A category password containing a
$symbol is verified correctly. Some passwords set before category passwords were encrypted stopped being accepted. - Security and reliability improvements.
Large files upload in resumable chunks, and the library can now tell other systems what changed
Two Pro additions this release, both about FileDeck fitting into a bigger setup: files too large for a normal WordPress upload, and other systems that need to know when your library changes.
Large files no longer hit your host's upload limit
Every WordPress upload normally has to fit in a single request, so the biggest file a site accepts is whatever the host allows — often 8–64 MB. Fine for a policy PDF. Not fine for construction drawings, a scanned archive box, or training video.
Large files now upload in chunks: sliced in the browser, sent as a series of small requests, reassembled on the server. No single request goes near your host's limit, so the practical ceiling becomes disk space instead of upload_max_filesize. Nothing to configure — large files simply upload.
The bigger difference shows up when something goes wrong. A dropped connection resumes from where it stopped rather than starting over, for up to 24 hours.
There is still a deliberate cap — 512 MB by default, raisable with the filedeck_max_upload_bytes filter. The parts land on your own disk while the upload runs, and an endpoint with no ceiling is an easy way to fill a volume. In-progress parts live in the protected folder, so a half-uploaded file is never web-reachable, and abandoned uploads are swept daily.
Permissions are unchanged: chunking is a transport detail, not a lower bar. It needs the same capabilities as any other upload, and an upload in progress belongs to the person who started it.
Library event webhooks
FileDeck could already tell you when a document was *downloaded*. It can now tell you when the library itself changes:
document.publisheddocument.updateddocument.unpublisheddocument.deleteddocument.downloaded
Set an endpoint under Documents → Settings → Downloads, tick the events you want, and FileDeck POSTs JSON when they happen. That is enough to drive Slack, Zapier, Make, a newsletter, or a sync into another system — without anything polling your site.
Every delivery is signed. FileDeck generates a secret for you and sends an X-FileDeck-Signature header — an HMAC-SHA256 over the timestamp and the raw body — so your endpoint can prove the request came from your site. The timestamp is part of the signed material, so a captured delivery can't be replayed later, and each POST carries a unique delivery id for de-duplication.
The payload describes the document — id, title, status, permalink, type, size, categories, tags, restriction state. It never carries the file or its extracted text, and the permalink is just a link: access control still applies to anyone who follows it, so announcing a restricted document does not expose it.
Deliveries are non-blocking and best-effort by design — a webhook must never be able to slow down or fail a document save — so there are no retries. If you need at-least-once, reconcile periodically rather than relying on every POST.
Building in PHP instead? Every event also fires do_action( 'filedeck_event', $event, $payload ), whether or not a webhook is configured. And you can test an endpoint without publishing anything:
“ wp filedeck event test --event=document.published --id=4182 “
Full details: Uploading large files · Library event webhooks.
Search results now tell you which page the match is on
Full-text search has been able to find words inside your PDFs for a while. What it couldn't do was tell you *where*. You searched for "retention schedule", got back a 60-page policy document, and then had to go find the phrase yourself.
Content-search results now show Found on page 7 under the title. Click it and the document opens at that page.
What it looks like
Search your library as usual. Any result matched on the text inside a PDF gains a small page control beneath its title. Hover it and you get the sentence around the match, so you can tell a passing mention from the section you actually want before you open anything.
Clicking opens the document at that page — in the preview lightbox when the document is previewable, and in a new tab otherwise.
When you won't see a page
The control appears only when FileDeck can be certain of the answer, which means it is deliberately absent in four cases:
- The match is in the title, description or a category rather than the file — there is no page to jump to.
- The file is a Word, Excel or PowerPoint document. Fully searchable, but with no fixed pagination to point at.
- The PDF was scanned and read by OCR, which returns text as one block with no page structure.
- The PDF's pages couldn't be split individually — a small minority of files.
In all four the document still appears in results exactly as before. This adds a jump; it never removes a result.
Re-index to pick up existing documents
Page positions are recorded when a document is indexed, so documents indexed before this update will keep searching normally but won't offer a page jump until they're re-indexed. Run Documents → Settings → Search → Rebuild search index once and they'll all pick it up.
Large libraries that use server-side paging get page jumps too; the numbers are computed for the rows on screen, so nothing slows down as the library grows.
Full details: Jump to the page a search match is on.
A new Gallery layout for libraries where the cover is the point
Some libraries are read by their pictures. A newsletter archive, a set of floor plans, a poster collection, a folder of product sheets — visitors recognise the document from its cover long before they read its title. The grid layout has always shown thumbnails, but it shows them as part of a balanced card, sharing room with an excerpt and a row of metadata.
Gallery is the layout for when the image should win.
What it looks like
Each document becomes a tall tile that is mostly thumbnail — a 3:4 portrait plate, wider tracks than the grid, and the chrome trimmed back to a two-line title and a single action. Tiles keep a consistent height, so a library of mixed-length titles still lines up.
Pick it under Documents → Settings → Display → Default layout, or per library:
“ [filedeck layout="gallery" columns="image,title,link" category="floor-plans"] “
It is also in the Document Library block, the Elementor widget, and the Classic Editor's *Document library* button. Grid / gallery columns pins an exact number of tiles per row; below 700px they reflow on their own, so two still fit side by side on a phone.
Documents without a thumbnail still get a tile
A gallery with holes in it looks broken, so every document gets a plate. Where there's no featured image, FileDeck draws a neutral tile showing the file type — PDF, DOCX, XLSX — and the grid stays even.
On Pro, PDF thumbnails generate a first-page image automatically, which is what makes the gallery worth using for a PDF-heavy library in the first place.
Documents a visitor isn't allowed to open show a padlock instead of the file type. The thumbnail, filename, excerpt and type are all withheld, exactly as they are in the table — a gallery never reveals more about a locked document than any other layout.
Nothing else changes
Instant search, category and tag filters, sorting and pagination all behave exactly as before, and large libraries still switch to server-side paging. The gallery is a fourth layout alongside table, grid and folders — not a replacement for any of them. If your documents need a sentence of context, the grid is still the better card; if visitors compare dates and sizes, use the table.
Full details: Gallery layout.
Bulk download now works on cloud libraries, plus a Classic Editor button
Two things this release: libraries backed by Google Drive, Dropbox, OneDrive or S3 can finally be bulk-downloaded as a zip, and Classic Editor sites get a proper button for inserting a library instead of typing the shortcode by hand.
Zip downloads work on cloud-hosted documents
If your library streams from Google Drive, Dropbox, OneDrive or S3, selecting several documents and hitting Download selected used to come back with "None of the selected documents have downloadable files." Cloud documents don't keep a copy on your server, and the zip builder only knew how to package local files.
It now fetches those files from your provider and packages them like any other document — mixed libraries work too, so a zip can contain a Drive file and a locally uploaded PDF side by side. Google Docs, Sheets and Slides are converted to PDF on the way in, the same as a single download. Access rules, lead capture, download quotas and watermarking all still apply to every file in the archive, and the total payload cap is enforced against the fetched files as well.
A Document library button in the Classic Editor
The block editor has had a Document Library block for a long time, and Elementor has its widget. On Classic Editor, though, you had to remember the shortcode.
There's now a Document library button above the editor toolbar. It opens a short form — layout, category, grid columns, documents per page — and drops the finished [filedeck] shortcode straight into your content. You can also insert a standalone search box from the same dialog. Nothing to memorise, and no typos in attribute names.
Fixes & improvements
- A cloud provider that's disconnected or erroring during a zip download is now recorded in the activity log, so a provider outage no longer looks the same as a document with no file attached.
Titles with special characters now display correctly everywhere
A small fix release. If any of your document titles contain an ampersand — "Policies & Procedures", "Terms & Conditions" — the ⌘K command palette, hover cards, upload confirmations and download-notification emails showed the raw HTML character code instead of the character itself.
Fixes & improvements
- Document titles with "&" and other special characters now display as typed in the ⌘K command palette, hover previews, the upload screen's confirmation, and download-notification emails and webhooks.
Smoother imports, sturdier libraries
This release sands down rough edges across importing, the AI index, and the library front end — the kind of fixes you feel as "it just works now" rather than a new button. It also bundles a round of security and reliability hardening across the plugin.
Imports handle the awkward files
Bringing a library over from another plugin now copes with the cases that used to fail quietly. Files a source plugin kept in its own protected folder are copied straight into your Media Library instead of being linked to a dead URL, so a migrated "members only" download stays properly protected on the other side. Spreadsheets exported from Excel as CSV UTF-8 import cleanly instead of reporting "0 documents created," re-running an import no longer re-creates documents you had trashed, and stopping an import mid-run actually stops it.
The AI index keeps up after a settings change
If you switch embedding provider or change the embedding size, Rebuild all now re-embeds every document in the library — not just the first few hundred — and semantic search ignores any leftover vectors from the old settings while that rebuild runs, so results stay trustworthy throughout.
Fixes & improvements
- Clicking Load more twice quickly on a large library no longer skips a page of results.
- The download details form now shows a clear message if a submission is declined (for example, when you've hit the hourly limit) instead of silently doing nothing.
- The document picker in the embed block now finds documents on sites using plain permalinks.
- The "Ask this library" box recovers gracefully instead of hanging if the AI provider is slow to respond.
- Download-analytics date ranges now line up with your site's timezone.
- Security and reliability improvements.
One-click import from Shared Files
The fourth one-click importer is here. FileDeck Pro now brings a Shared Files library across in one click — files, categories, tags, download counters and password-protected items included.
Import your Shared Files library
On Documents → Migrate, if Shared Files is installed you'll see a card with the number of files FileDeck detected and an Import button. One click brings across:
- every file as a FileDeck document, with its title and description,
- your categories — sub-categories and all, with the nesting kept,
- tags (including a custom tag taxonomy, if you've set one),
- the file itself — the same Media Library attachment where it came from your library, otherwise linked by URL,
- each file's download counter, so your numbers don't reset, and
- password-protected files, which become documents limited to logged-in users.
It runs in the background, lets you import as drafts to review first, and is safe to run again — anything already imported is skipped, never duplicated, and your originals are never touched. See migrating from Shared Files for the full walkthrough.
That's four of the most popular file and document plugins now covered by one-click migration, with the CSV importer on the same screen for everything else.