Frontend File Explorer

Description

Frontend File Explorer turns WordPress into a modern, Windows Explorer–style file manager. Manage all your documents, media, and downloads from a clean admin dashboard — then embed a beautiful, mobile-friendly file explorer on any page with one shortcode.

No bloat. No page builder required. Works with every theme.

Why site owners choose Frontend File Explorer:

  • Explorer-style interface: Familiar breadcrumbs, toolbar, sorting, and pagination make organizing hundreds of files feel effortless.
  • Frontend file sharing: Embed a read-only file explorer on any page so visitors can browse folders and download files in one click.
  • Drag-and-drop uploads: Upload multiple files at once, or import existing files straight from your Media Library.
  • Folder management: Create unlimited nested folders, exactly like on your desktop.
  • Rename, move & copy: Reorganize files and folders with bulk selection and conflict-safe transfers — choose Skip, Replace, or Keep both when names collide.
  • ZIP downloads: Download an entire folder as a ZIP archive with a single click.
  • Copy direct links: Grab a shareable URL for any file instantly.
  • Capability-protected management: Uploading, renaming, moving, and deleting require the WordPress upload_files capability. Visitors can browse and download shared files.
  • Dedicated storage: Files live in a dedicated wp-content/uploads/downloads directory, separate from your Media Library.
  • Fast AJAX navigation: Folder browsing without page reloads.
  • Translation ready: Fully localized with the frontend-file-explorer text domain.

This plugin bundles Material Icons (Google), licensed under the Apache License 2.0. Apache 2.0 is compatible with GPLv3 and later. Full license text and attribution are in THIRD-PARTY-NOTICES.txt.

Perfect for:

  • Course creators selling downloadable materials
  • Agencies delivering files to clients
  • Businesses publishing a document library, resource hub, brochures, or documentation
  • Anyone who wants a clean, branded downloads page or file-sharing hub

How to use the Explorer:

  • Admin Interface:
    Navigate to File Upload in your WordPress admin sidebar. From this dedicated dashboard you can create nested folders, upload bulk files (multi-select and drag-and-drop), import existing Media Library assets, rename items, move or copy files and folders in bulk, delete items, and download entire directories as ZIP archives.

  • Frontend Shortcode:
    Embed the user-facing explorer interface on any Page, Post, or Custom Post Type using the following shortcode setup:

    [frontend_file_explorer]
    

    (Renders the explorer starting at the root storage directory)

    Advanced Shortcode Usage:
    You can explicitly define the starting folder path relative to the root uploads/downloads directory by using the folder attribute:

    [frontend_file_explorer folder="/course-materials"]
    [frontend_file_explorer folder="/clients/acme-corp"]
    
    • Frontend Capabilities: Visitors can browse folders, download files, and copy direct sharing links.
    • Security: Mutating actions (upload, folder creation, rename, move, copy, deletion) are strictly hidden and blocked from public visitors — they are only accessible to logged-in users with the WordPress upload_files capability.

Support Development

If you find this plugin useful and want to support its continued development, consider buying me a coffee!

Your support helps keep the plugin maintained, secure, and free for everyone.

Screenshots

Installation

Installation from within WordPress

  1. Visit Plugins > Add New.
  2. Search for Frontend File Explorer.
  3. Install and activate the plugin.
  4. On activation, the plugin creates the wp-content/uploads/downloads directory — start uploading right away.
  5. Add [frontend_file_explorer] to any page to publish your file explorer.

Manual installation

  1. Upload the plugin folder to the /wp-content/plugins/ directory.
  2. Visit Plugins.
  3. Activate the Frontend File Explorer plugin.

FAQ

Is Frontend File Explorer free?

Yes — the plugin is 100% free and open source (GPLv2+). Optional support contributions keep it maintained and secure.

Where are my files stored?

In a dedicated wp-content/uploads/downloads directory, kept separate from your Media Library. Back it up like any other uploads folder.

Can visitors upload or delete files?

No. Public visitors can only browse folders, download files, and copy file links. Uploading, creating folders, renaming, moving, copying, and deleting require a logged-in user with the upload_files capability (Administrators and Editors by default).

Are my files private?

No — this is a sharing tool. Anything placed in the downloads folder is publicly listable and downloadable by anyone with the link, so don’t upload sensitive documents. Directory listing is disabled on Apache servers, but direct file links always work by design.

How do I create a downloads page?

Add [frontend_file_explorer] to any page and publish it — that’s your downloads page. Use [frontend_file_explorer folder="/course-materials"] to start the explorer inside a specific folder.

How is this different from the Media Library?

Files live in a separate wp-content/uploads/downloads directory, outside the Media Library. The Media Library manages private site assets; this plugin builds a public, browsable document library that visitors can explore and download from without logging in.

Are there file size or type limits?

Uploads respect your WordPress upload size limits. Allowed types default to images, PDFs, Office documents, and archives — and server-executable types (such as .php) are always blocked, regardless of configuration. The blocklist is enforced on every write path, including upload, rename, copy, and move, so an allowed file type cannot be renamed into an executable one. Developers can adjust the allowed list via the frontend_file_explorer_allowed_file_types option.

Can I show only a specific folder on a page?

Yes. Use the folder attribute: [frontend_file_explorer folder="/clients/acme-corp"] renders the explorer starting inside that folder.

Does it work with any theme or page builder?

Yes. The explorer is embedded via a standard WordPress shortcode, so it works with any theme and fits any shortcode-ready area — Gutenberg blocks, Elementor, widgets, and more.

Can visitors download an entire folder at once?

Yes. Any folder offers a one-click « Download as ZIP » action that bundles the whole directory on the fly.

Are file types restricted?

See « Are there file size or type limits? » above — executable types are always blocked and the allowed list is adjustable.

Does the plugin work in multisite?

Yes. Each site manages its own uploads/downloads directory. You can network-activate the plugin for consistency across sites.

How do I translate the UI?

The plugin is fully localization-ready and uses the frontend-file-explorer text domain. Use tools like Loco Translate or Poedit to create translations and drop .mo files in the languages/ directory.

Can I show author credits?

Credits are off by default, per WordPress.org plugin guidelines. To support the developer, open the plugin’s admin page and enable Show author credit in the Preferences card — a small « Built by » line (nofollow) then appears in the admin and on pages using the explorer shortcode.

Can I point the explorer to a different base folder?

Yes. You can override the constants in a custom mu-plugin before Frontend File Explorer loads, or use hooks to adjust the base path/URL. This is an advanced customization and should be done carefully.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Frontend File Explorer” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.1.0

  • Compliance: Author credits are now opt-in — off by default on new and existing installs, with a nofollow link when enabled, per WordPress.org plugin guideline 10.
  • Security: Server-executable file types (such as .php) are always blocked on every write path — upload, rename, copy, and move — regardless of configuration. An allowed file type can no longer be renamed into an executable one.
  • Security: Hardened ZIP downloads (memory limits, temp-file cleanup) and path validation (null-byte rejection, canonical-path checks on all handlers).
  • Security: Backfills directory-listing protection (.htaccess + index.php) on installs created before it existed.
  • Performance: Plugin scripts now load with a defer strategy on WordPress 6.3 and later. On WordPress 5.6 to 6.2 the scripts still load in the footer, but without deferring.
  • Privacy: The Buy Me a Coffee button image is bundled locally — no third-party CDN requests from your admin.

1.0.11

  • Feature: Rename files and folders directly from the admin explorer.
  • Feature: Bulk select items with checkboxes and a select-all control.
  • Feature: Move or copy files and folders to any destination via a folder picker with breadcrumb navigation.
  • Feature: Per-item conflict resolution (Skip, Replace, Keep both) when the destination already contains an item with the same name.

1.0.8

  • Feature: Added « Hide author credits » toggle (Settings panel) — removes credits from DOM when checked, dofollow attribution when visible.
  • Feature: Added Buy Me a Coffee support button on the admin page, Plugins screen, readme.txt, and README.md.
  • UI: Added a settings card below the shortcode panel with checkbox and support links.
  • Internal: Added plugin_row_meta filter for plugin action links, save_credits_preference AJAX endpoint, and frontend_file_explorer_hide_credits option.

1.0.7

  • Feature: Added server-side sorting for folder/file listings (Name, Date Modified, Size, Type, asc/desc).
  • Feature: Admin can set a default sort order that persists for frontend visitors.
  • Feature: Added shortcode reference panel with copyable code snippets below the admin explorer.
  • Feature: Frontend explorer now respects the admin-configured default sort order.
  • UI: Modernized shortcode & tips card with dark code blocks, hover effects, tooltip copy feedback.

1.0.6

  • UI: Redesigned admin interface with modern styling, CSS custom properties, card-based grid, smoother transitions, and responsive layouts.
  • UI: Replaced browser alerts with styled toast notifications for success/error messages.
  • UI: Added file-type color coding for PDFs, Word docs, Excel files, and archives.
  • UI: Improved modal design with backdrop blur, scale animation, and Escape-key dismissal.
  • Fix: Fixed broken CSS asset paths preventing Material Icons and all styles from loading.
  • Fix: Fixed Material Icons font URL resolution in bundled stylesheet.
  • Fix: Fixed duplicate element ID causing toolbar button text to disappear on upload modal open.
  • Fix: Fixed infinite recursion crash when clicking upload dropzone.
  • Fix: Fixed « Upload Files » button incorrectly opening Media Library instead of the upload modal.
  • Fix: Fixed ZIP download failing with « No path specified » (GET vs POST mismatch).
  • Fix: Fixed trailing comma syntax error in admin JavaScript class method.

1.0.5

  • Security: Added comprehensive array structure validation for $_FILES superglobal before accessing elements.
  • Security: Moved is_uploaded_file() validation to immediately after accessing tmp_name for improved security.
  • Security: Removed PHPCS ignore comment and implemented proper sanitization for file upload handling.
  • Standards: Replaced $_REQUEST with $_POST for AJAX POST requests per WordPress coding standards.
  • Standards: Replaced PHP basename() with WordPress wp_basename() for i18n compatibility with multibyte characters.

1.0.4

  • Security: Sanitized and validated all $_FILES upload fields individually (name, type, tmp_name, error, size).
  • Security: Added is_uploaded_file() guard against path injection on file uploads.
  • Standards: Fixed unordered placeholders in translatable strings per WordPress i18n guidelines.

1.0.3

  • Security: Fixed unauthenticated file downloads, arbitrary PHP uploads, XSS via eval(), and server path disclosure.
  • Standards: Migrated all filesystem operations to WP_Filesystem API, bundled Material Icons locally, added proper nonce verification and capability checks to all AJAX endpoints.
  • Standards: Renamed classes to use WordPress underscore convention (Frontend_File_Explorer, Frontend_File_Explorer_Ajax).
  • Standards: Removed discouraged load_plugin_textdomain() call, added proper prefixing to all handles and identifiers.

1.0.2

  • Fix: Resolved a critical bug causing the frontend explorer to execute filesystem deletion logic instead of listing directory contents.
  • Fix: Repaired the « Download as ZIP » mechanism to eliminate ERR_INVALID_RESPONSE failures by safely building ZipArchive temp files and explicitly managing PHP output buffers and Safari download headers.
  • Feature: Fully integrated the missing backend endpoints required for the UI, enabling seamless frontend and backend folder creation, file uploads, and Media Library imports.
  • Security & Standards: Swept codebase for strict WordPress PHPCS warnings. Corrected all variable unslashing, resolved missing nonce verification checks, migrated deprecated filesystem functions to WP_Filesystem, and reinforced esc_html__ translation domain strings and translators comments.

1.0.1

  • Rename plugin to « Frontend File Explorer »
  • Align text domain and translation loading with slug frontend-file-explorer
  • Improve README and readme.txt descriptions and screenshots