Plugin Directory

!This plugin hasn’t been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.

WP Document Revisions

A document management and version control plugin for WordPress that allows teams of any size to collaboratively edit files and manage their workflow.



  • Fix for workflow state not properly saving under certain circumstances
  • Added Italian translation, props @guterboit
  • Added Russian translation, props Evgeny Vlasov
  • Updated all translations
  • Workflow state saving improvements, props @cojennin (#48)
  • Fix restore revision link bug, props @cojennin (#55)
  • Welcome @cojennin to the core team. Want to join?


  • Added Dutch translation, props @tijscruysen.
  • To prevent potential errors, verify workflow_state is set before checking for change, props @rachelbaker.
  • Added document_custom_feed and document_verify_feed_key filters to customize feed behavior, props @nodakjones.
  • Prevent errors when newly added documents do not have attached files, props @rachelbaker.
  • Better compatibility with WordPress 3.5 media uploader
  • Significant Javascript improvements to prevent conflicts with other plugins


  • Testing framework no longer distributed with the plugin.
  • Added Swedish translation, special thanks to Daniel Kroon, Examinare AB, Sweden.
  • Added Czech translation set, special thanks to Hynek Šťavík.


  • Fix for fatal error (undefined function) when Edit Flow custom post status were enabled, props Leho Kraav, fixes #24
  • Fix for testing framework not being properly included in plugin repository due to bad deploy script
  • Added German translation (de_DE), special thanks to Konstantin Obenland
  • Added Chinese translation (zh_CN), special thanks to Tim Ren
  • Updated Spanish, French, and Norwegian translations



  • Better permalink support for draft and pending documents
  • Whenever possible browser will attempt to display documents in browser, rather than prompting with save as dialog (e.g., PDFs)
  • Fix for function get_file_type() breaking the global $post variable when no document argument is supplied
  • Improved Spanish translation with additional strings (special thanks, elarequi)


  • Plugin now includes unit tests to ensure security and stability, and undergoes extensive testing (WordPress 3.2/3.3/Trunk, Multisite/single, PHP 5.3/5.4) via continuous integration service Travis CI prior to release.
  • Translations now curated on collaborative editing platform GlotPress if any user would like to submit a translation (no technical knowledge necessary)
  • If you would like to help out by testing early releases, please try the continuously updated development version. Any feedback, technical or prose is helpful.
  • Added Spanish Translation Support (es_ES -- special thanks to TradiArt)
  • Document URL slug (used for archive and prefixing all documents) now customizable via settings page and translatable. (e.g., http://domain.com/documentos/2012/04/test.txt rather than /documents/)
  • Subscribers and unauthenticated users no longer have the ability to read revisions by default (you can override this setting using the Members plugin.
  • Attempts to access unauthorized files now properly respond with HTTP code 403 (rather than 500 previously). Note: attempting to access private documents will continue to result in 404s.
  • Enhanced authentication prior to serving files now provides developers more granular control of permissions via serve_document_auth filter.
  • Better Edit Flow support (can now toggle document support on and off using native Edit Flow user interface). Note: You may need to manually toggle on custom status support for documents after upgrading.
  • Default document upload directory now honors WordPress-wide defaults and features enhanced multisite support
  • Ability to separate documents on server by site subfolder on multisite installs


  • Better support for custom document upload directories on multisite installs
  • Gallery, URL, and Media Library links now hidden from media upload popup when uploading revisions
  • Fix for plugin breaking media gallery when filtered by mimetype (MySQL ambiguity error)
  • Fix for upload new version button appearing for locked out users in WordPress 3.3
  • Fix for upload new version button not appearing after document lock override on WordPress 3.3


  • Owner metabox no longer displays if user does not have the ability to edit_others_documents
  • Fix for serving documents via SSL to Internet Explorer version 8 and earlier
  • GPL License now distributed with plugin
  • Code cleanup, minor bug fixes, and additional inline documentation


  • Plugin posted to Github if developers would like to fork and contribute
  • Documents shortcode now accepts additional parameters. See the FAQ for a full list.
  • Performance and scalability improvements to backend; files attached to documents are now excluded from media lists by join statements rather than subqueries
  • If plugin is unable to locate requested file on server, standard theme's 404 template is served (rather than serving "404 -- file not found" via wp_die() previously) and E_USER_NOTICE level error is thrown. Diagnostic information will be available via debug bar (if WP_DEBUG is enabled) or in the standard PHP error log
  • /documents/ now supports pagination
  • Support for linking to revisions with ugly permalinks
  • Custom post type's has_archive property changed to true to help with theme compatibility
  • Fix for fatal error when user without read_document_revisions capability called wp_get_attachment_url() on file attached to a revision
  • Fix for broken permalink returned when get_permalink is called multiple times on the same document revision
  • Fix for wp_get_attachment_image_src returning broken URLs or the direct path to the document
  • Fix for "Call-time pass-by-reference has been deprecated" error when running certain versions of PHP
  • General code cleanup


  • French translation (Special thanks to Hubert CAMPAN)
  • Enhanced support for running on WAMP systems (XAMPP, etc.)
  • Improved integration with WordPress 3.3's new upload handler
  • Significant performance improvements to verify_post_type() method
  • Document requests no longer canonically 301 redirect with a trailing slash
  • Fix for wp_get_attachment_url returning the attachment URL, rather than the document permalink when called directly
  • Menu item now reads "All Documents" (rather than simply "Documents") for clarity
  • Fix for E_WARNING level error on edit-tags.php with custom taxonomies
  • Taxonomy counts (e.g., workflow states) now reflects non-published documents
  • Better translation support (see the FAQ if you are interested in translating the plugin into your language)
  • Compatibility fix for WordPress SEO's "Clean Permalinks" mode


  • Added shortcode to display list of documents meeting specified criteria
  • Added shortcode to display a document's revisions (formerly in code cookbook)
  • Added widget to display recently revised documents (formerly in code cookbook)
  • Created new global get_documents() and get_document_revisions() functions to help build and customize themes and plugins
  • Added filter to wp_get_attachment_url to force document/revision urls when attachments are queried directly
  • Better organization of plugin files within plugin folder
  • Fixed bug where revision summary would not display under certain circumstances


  • Added support for the Edit Flow Plugin if installed
  • Added "Currently Editing" column to documents list to display document's lock holder, if any
  • Added support for new help tabs in WordPress versions 3.3 and greater
  • Fixed bug where media library would trigger an SQL error when no documents had been uploaded
  • Fixed bug where owner dropdown on edit screen would only list "author" level users
  • "- Latest Revision" only appended to titles on feeds


  • Fixed bug where password-protected documents would not prompt for password under certain circumstances


  • Significant performance improvements (now relies on wp_cache)
  • Feed improvements (performance improvements, more consistent handling of authors and timestamps)
  • Workflow States in documents list are now link to a list of all documents in that workflow state
  • Changed "Author" column heading to "Owner" in documents list to prevent confusion
  • If a revision's attachment ID is unknown, the plugin now defaults to the latest attached file, rather than serving a 404


  • A list of all documents a user (or visitor) has permission to view is now available at yourdomain.com/documents/
  • Changed functions get_latest_version and get_latest_version_url to "revision" instead of "version" for consistency
  • Forces get_latest_revision to rely on get_revisions to fix inconsistencies in WP revision author bug
  • Support for ugly permalink structures
  • Changing metabox options does not enable the publish button on non-document pages
  • Changing the title or other text fields enables the update button
  • Fix for authors not having capability to edit documents by default
  • No longer displays attachment ID when posts are queried via the frontend


  • Fixed bug where RSS feeds would erroneously deny access to authorized users in multisite installs


  • Better handling of uploads in WordPress versions 3.3 and above
  • Added shadow to document menu icon (thanks to Ryan Imel of WPCandy.com)
  • Fixed E_WARNING level error for undefined index on workflow_state_nonce when saving posts with WP_DEBUG on
  • Corrected typos in contextual help dropdown
  • Fixed permission issue where published documents were not accessible to non-logged in users
  • Fixed last-modified author not displaying the proper author on document-edit screen


  • Stable Release



  • Initial beta


  • Proof of concept prototype

Requires: 3.9 or higher
Compatible up to: 3.9.14
Last Updated: 2 years ago
Active Installs: 5,000+


3.5 out of 5 stars


0 of 1 support threads in the last two months have been marked resolved.

Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.

100,1,1 100,2,2 100,1,1 100,1,1 100,4,4 100,1,1 100,1,1 100,2,2 50,2,1 100,2,2 100,1,1
100,1,1 100,4,4 100,2,2 0,1,0
100,1,1 100,2,2 50,4,2
100,1,1 100,1,1