[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fFZoLTs30upVNWohqGzbBHgbLAbp-yINnYbxYOlUI4Vk":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":29,"last_vuln_date":30,"fetched_at":31,"vulnerabilities":32,"developer":49,"crawl_stats":38,"alternatives":56,"analysis":154,"fingerprints":796},"wp-document-revisions","WP Document Revisions","3.8.1","Ben Balter","https:\u002F\u002Fprofiles.wordpress.org\u002Fbenbalter\u002F","\u003Cp>A document management and version control plugin for WordPress that allows teams of any size to collaboratively edit files and manage their workflow.\u003C\u002Fp>\n\u003Ch3>What is WP Document Revisions?\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwp-document-revisions\u002F\" rel=\"ugc\">WP Document Revisions\u003C\u002Fa> is a \u003Ca href=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDocument_management_system\" rel=\"nofollow ugc\">document management\u003C\u002Fa> and \u003Ca href=\"http:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRevision_control\" rel=\"nofollow ugc\">version control\u003C\u002Fa> plugin. Built for time-sensitive and mission-critical projects, teams can collaboratively edit files of any format — text documents, spreadsheets, images, sheet music… anything — all the while, seamlessly tracking the document’s progress as it moves through your organization’s existing workflow.\u003C\u002Fp>\n\u003Ch4>WP Document Revisions is three things\u003C\u002Fh4>\n\u003Col>\n\u003Cli>\u003Cstrong>📁 Document Management System (DMS)\u003C\u002Fstrong> – Track, store, and organize files of any format\u003C\u002Fli>\n\u003Cli>\u003Cstrong>👥 Collaboration Tool\u003C\u002Fstrong> – Empower teams to collaboratively draft, edit, and refine documents\u003C\u002Fli>\n\u003Cli>\u003Cstrong>🔒 File Hosting Solution\u003C\u002Fstrong> – Publish and securely deliver files to teams, clients, or the public\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>See \u003Ca href=\"https:\u002F\u002Fwp-document-revisions.github.io\u002Fwp-document-revisions\u002Ffeatures\u002F\" rel=\"nofollow ugc\">\u003Cstrong>the full list of features\u003C\u002Fstrong>\u003C\u002Fa> for more information.\u003C\u002Fp>\n\u003Ch3>📚 Documentation\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwp-document-revisions.github.io\u002Fwp-document-revisions\" rel=\"nofollow ugc\">Complete Documentation Site\u003C\u002Fa>\u003C\u002Fstrong> – Your one-stop resource for everything about WP Document Revisions.\u003C\u002Fp>\n\u003Ch4>🎯 Quick Start Guides\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwp-document-revisions.github.io\u002Fwp-document-revisions\u002Finstallation\u002F\" rel=\"nofollow ugc\">Installation\u003C\u002Fa>\u003C\u002Fstrong> – Get up and running in minutes\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwp-document-revisions.github.io\u002Fwp-document-revisions\u002Ffeatures\u002F\" rel=\"nofollow ugc\">Features and Overview\u003C\u002Fa>\u003C\u002Fstrong> – Discover what WP Document Revisions can do\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwp-document-revisions.github.io\u002Fwp-document-revisions\u002Fscreenshots\u002F\" rel=\"nofollow ugc\">Screenshots\u003C\u002Fa>\u003C\u002Fstrong> – See the plugin in action\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>📖 User Documentation\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwp-document-revisions.github.io\u002Fwp-document-revisions\u002Ffrequently-asked-questions\u002F\" rel=\"nofollow ugc\">Frequently Asked Questions\u003C\u002Fa>\u003C\u002Fstrong> – Common questions answered\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwp-document-revisions.github.io\u002Fwp-document-revisions\u002Factions\u002F\" rel=\"nofollow ugc\">Plugin Actions\u003C\u002Fa>\u003C\u002Fstrong> – Available WordPress actions\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwp-document-revisions.github.io\u002Fwp-document-revisions\u002Ffilters\u002F\" rel=\"nofollow ugc\">Plugin Filters\u003C\u002Fa>\u003C\u002Fstrong> – Available WordPress filters\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwp-document-revisions.github.io\u002Fwp-document-revisions\u002Fshortcodes\u002F\" rel=\"nofollow ugc\">Plugin Shortcodes and Widget\u003C\u002Fa>\u003C\u002Fstrong> – Display documents on your site\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwp-document-revisions.github.io\u002Fwp-document-revisions\u002Fuseful-plugins-and-tools\u002F\" rel=\"nofollow ugc\">Useful Plugins and Tools\u003C\u002Fa>\u003C\u002Fstrong> – Extend functionality\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwp-document-revisions.github.io\u002Fwp-document-revisions\u002Ftranslations\u002F\" rel=\"nofollow ugc\">Translations\u003C\u002Fa>\u003C\u002Fstrong> – Multi-language support\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwp-document-revisions.github.io\u002Fwp-document-revisions\u002Flinks\u002F\" rel=\"nofollow ugc\">Links\u003C\u002Fa>\u003C\u002Fstrong> – Additional resources\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>🆘 Support & Community\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwp-document-revisions.github.io\u002Fwp-document-revisions\u002FSUPPORT\u002F\" rel=\"nofollow ugc\">Where to get Support or Report an Issue\u003C\u002Fa>\u003C\u002Fstrong> – Get help when you need it\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwp-document-revisions.github.io\u002Fwp-document-revisions\u002FCONTRIBUTING\u002F\" rel=\"nofollow ugc\">How to Contribute\u003C\u002Fa>\u003C\u002Fstrong> – Join our community\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fgroups.google.com\u002Fforum\u002F#!forum\u002Fwp-document-revisions\" rel=\"nofollow ugc\">Join the Mailing List\u003C\u002Fa>\u003C\u002Fstrong> – Stay updated\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Ch4>Overview\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Powerful Collaboration Tools\u003C\u002Fstrong> – \u003Cem>With great power does not have to come great complexity.\u003C\u002Fem> Based on a simple philosophy of putting powerful but intuitive tools in the hands of managers and content creators, WP Document Revisions leverages many of the essential WordPress features that, for more than eight years, have been tested and proven across countless industries — posts, attachments, revisions, taxonomies, authentication, and permalinks — to make collaborating on the creation and publication of documents a natural endeavor. Think of it as an \u003Ca href=\"http:\u002F\u002Fben.balter.com\u002F2011\u002F04\u002F04\u002Fwhen-all-you-have-is-a-pair-of-bolt-cutters\u002F\" rel=\"nofollow ugc\">open-source and more intuitive version\u003C\u002Fa> of the popular Microsoft collaboration suite, \u003Ca href=\"http:\u002F\u002Fsharepoint.microsoft.com\u002Fen-us\u002FPages\u002Fdefault.aspx\" rel=\"nofollow ugc\">Sharepoint.\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Document History\u003C\u002Fstrong> – At each step of the authoring process, WP Document Revisions gives you an instant snapshot of your team’s progress and the document’s history. It even gives you the option to revert back to a previous revision — so don’t fret if you make a mistake — or receive updates on changes to the document right in your favorite feed reader.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Access Control\u003C\u002Fstrong> – Each document is given a persistent URL (e.g., yourcompany.com\u002Fdocuments\u002F2011\u002F08\u002FTPS-Report.doc) which can be private (securely delivered only to members of your organization), password protected (available only to those you select such as clients or contractors), or public (published and hosted for the world to see). If you catch a typo and upload a new version, that URL will continue to point to the latest version, regardless of how many changes you make.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Enterprise Security\u003C\u002Fstrong> – Worried about storing propriety or sensitive information? WP Document Revisions was built from the first line of code with government- and enterprise-grade security in mind. Each file is masked behind an anonymous 128-bit \u003Ca href=\"http:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMD5\" rel=\"nofollow ugc\">MD5 hash\u003C\u002Fa> as soon as it touches the server, and requests for files are transparently routed through WordPress’s time-tested URL rewriting, authentication, and permission systems (which can even \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Factive-directory-integration\u002F\" rel=\"ugc\">integrate with existing enterprise active directory\u003C\u002Fa> or \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fsimple-ldap-login\u002F\" rel=\"ugc\">LDAP servers\u003C\u002Fa>). Need more security? WP Document Revisions allows you to store documents in a folder above the \u003Ccode>htdocs\u003C\u002Fcode> or \u003Ccode>public_html\u003C\u002Fcode> \u003Ca href=\"http:\u002F\u002Fhttpd.apache.org\u002Fdocs\u002F2.0\u002Fmod\u002Fcore.html#documentroot\" rel=\"nofollow ugc\">web root\u003C\u002Fa>, further ensuring that only those you authorize have access to your work.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Customization\u003C\u002Fstrong> – WP Document Revisions recognizes that no two teams are identical, and as a result, molds to your firm’s needs, not the other way around. Need to track additional information associated with a document? Departments, editors, issues, sections, even arbitrary key-value pairs — whatever you can throw at it, it can handle. Development and customization costs are further minimized by its extensive plugin API, and the \u003Ca href=\"http:\u002F\u002Fthemergency.com\u002Fgenerators\u002Fwordpress-custom-taxonomy\u002F\" rel=\"nofollow ugc\">WordPress Custom Taxonomy Generator\u003C\u002Fa> makes it easy for even the uninitiated to add custom taxonomies to documents. Need an audit trail to track check-ins and check-outs? User-level permissions based on the document’s state or another custom taxonomy? Support for third-party encryption? Check out the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-document-revisions\u002Fwp-document-revisions-Code-Cookbook\" rel=\"nofollow ugc\">WP Document Revisions Code Cookbook\u003C\u002Fa> for sample code. Looking for even more advanced control of your workflow? WP Document Revisions will detect the popular workflow plugin \u003Ca href=\"http:\u002F\u002Feditflow.org\" rel=\"nofollow ugc\">Edit Flow\u003C\u002Fa>, if installed, and will automatically pull \u003Ca href=\"http:\u002F\u002Fben.balter.com\u002F2011\u002F10\u002F24\u002Fadvanced-workflow-management-tools-for-wp-document-revisions\u002F\" rel=\"nofollow ugc\">Edit Flow’s advanced workflow management tools\u003C\u002Fa> into WP Document Revisions. Simply put, virtually every aspect of the plugin’s functionality from workflow states to user-level permissions can be fully customized to your team’s unique needs.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Future Proof\u003C\u002Fstrong> – Switching costs a concern? WP Document Revisions is built with tomorrow’s uncertainty in mind. Equally at home in an in-house server room as it is in the cloud, moving individual files or entire document repositories in and out of WP Document Revisions is a breeze (history and all). And since the software is open-source, you can easily add tools to automate the process of moving to or integrating with future third-party systems.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Support for any file type (docs, spreadsheets, images, PDFs — anything!)\u003C\u002Fli>\n\u003Cli>Securely stores unlimited revisions of your business’s essential files\u003C\u002Fli>\n\u003Cli>Provides a full file history in the form of a revision log, accessible via RSS\u003C\u002Fli>\n\u003Cli>Helps you track and organize documents as they move through your organization’s existing workflow\u003C\u002Fli>\n\u003Cli>Each file gets a permanent, authenticated URL that always points to the latest version\u003C\u002Fli>\n\u003Cli>Each revision gets its own unique url (e.g.,TPS-Report-revision-3.doc) accessible only to those you deem\u003C\u002Fli>\n\u003Cli>Files are intuitively checked out and locked to prevent revisions from colliding\u003C\u002Fli>\n\u003Cli>Toggle documents between public, private, and password protected with a single mouse click\u003C\u002Fli>\n\u003Cli>Runs in-house or in the cloud\u003C\u002Fli>\n\u003Cli>Secure: filenames are hashed on upload and files are only accessible through WordPress’s proven authentication system\u003C\u002Fli>\n\u003Cli>Can move document upload folder to location outside of web root to further ensure government- and enterprise-grade security\u003C\u002Fli>\n\u003Cli>Documents and Revisions shortcodes, Recently Revised Documents widget\u003C\u002Fli>\n\u003Cli>Multisite and Windows (XAMPP) support\u003C\u002Fli>\n\u003Cli>Multiple language support including French, Spanish and German (easily translated to your language)\u003C\u002Fli>\n\u003Cli>Integration with \u003Ca href=\"https:\u002F\u002Feditflow.org\" rel=\"nofollow ugc\">Edit Flow\u003C\u002Fa>, PublishPress or PublishPress Statuses.\u003C\u002Fli>\n\u003Cli>Recently Revised Documents Widget, shortcodes, and templating functions for front-end integration\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Features Available via the [Code Cookbook](https:\u002F\u002Fgithub.com\u002Fwp-document-revisions\u002Fwp-document-revisions-Code-Cookbook)\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Audit Trail\u003C\u002Fstrong> – creates check in \u002F check out audit trail for all documents\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Taxonomy-based Permissions\u003C\u002Fstrong> – allows setting user-level permissions based on a custom taxonomy such as department\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Third Party Encryption\u003C\u002Fstrong> – example of how to integrate at rest encryption using third-party tools\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Rename Documents\u003C\u002Fstrong> – changes all references to “Documents” in the interface to any label of your choosing\u003C\u002Fli>\n\u003Cli>\u003Cstrong>State Change Notification\u003C\u002Fstrong> – how to use document api to allow users to receive notification whenever documents change workflow state\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Bulk Import\u003C\u002Fstrong> – how to batch import a directory (or other list) of files as documents\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Filetype Taxonomy\u003C\u002Fstrong> – Adds support to filter by filetype\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Track Changes\u003C\u002Fstrong> – Auto-generates and appends revision summaries for changes to taxonomies, title, and visibility\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Change Tracker\u003C\u002Fstrong> – Auto-generates and appends revision summaries for changes to taxonomies, title, and visibility\u003C\u002Fli>\n\u003Cli>\u003Cstrong>WPML Support\u003C\u002Fstrong> – Integration with WPML\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Security Policy\u003C\u002Fh3>\n\u003Cp>To report a security vulnerability, please email \u003Ca href=\"mailto:ben@balter.com\" rel=\"nofollow ugc\">ben@balter.com\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Where to get help or report an issue\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>For getting started and general documentation, please browse, and feel free to contribute to \u003Ca href=\"https:\u002F\u002Fwp-document-revisions.github.io\u002Fwp-document-revisions\u002F\" rel=\"nofollow ugc\">the project documentation\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>For support questions (“How do I”, “I can’t seem to”, etc.) please search and if not already answered, open a thread in the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fwp-document-revisions\" rel=\"ugc\">Support Forums\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>For technical issues (e.g., to submit a bug or feature request) please search and if not already filed, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-document-revisions\u002Fwp-document-revisions\u002Fissues\" rel=\"nofollow ugc\">open an issue on GitHub\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>For implementation, and all general questions (“Is it possible to..”, “Has anyone…”), please search, and if not already answered, post a topic to the \u003Ca href=\"https:\u002F\u002Fgroups.google.com\u002Fforum\u002F#!forum\u002Fwp-document-revisions\" rel=\"nofollow ugc\">general discussion list serve\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Things to check before reporting an issue\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Are you using the latest version of WordPress?\u003C\u002Fli>\n\u003Cli>Are you using the latest version of the plugin?\u003C\u002Fli>\n\u003Cli>Does the problem occur even when you deactivate all plugins and use the default theme?\u003C\u002Fli>\n\u003Cli>Have you tried deactivating and reactivating the plugin?\u003C\u002Fli>\n\u003Cli>Has your issue \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-document-revisions\u002Fwp-document-revisions\u002Fissues\" rel=\"nofollow ugc\">already been reported\u003C\u002Fa>?\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>What to include in an issue\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>What steps can another user take to recreate the issue?\u003C\u002Fli>\n\u003Cli>What is the expected outcome of that action?\u003C\u002Fli>\n\u003Cli>What is the actual outcome of that action?\u003C\u002Fli>\n\u003Cli>Are there any screenshots or screencasts that may be helpful to include?\u003C\u002Fli>\n\u003Cli>Only include one bug per issue. If you have discovered two bugs, please file two issues.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Links\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-document-revisions\u002Fwp-document-revisions\u002F\" rel=\"nofollow ugc\">Source Code\u003C\u002Fa>\u003C\u002Fstrong> (GitHub)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-document-revisions\u002Fwp-document-revisions\u002Freleases\u002Flatest\" rel=\"nofollow ugc\">Latest Release\u003C\u002Fa>\u003C\u002Fstrong> – Download the newest version\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwp-document-revisions\u002F\" rel=\"ugc\">WordPress.org Plugin Page\u003C\u002Fa>\u003C\u002Fstrong> – Official plugin listing\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-document-revisions\u002Fwp-document-revisions\u002Ftree\u002Fdevelop\" rel=\"nofollow ugc\">Development Version\u003C\u002Fa>\u003C\u002Fstrong> (\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-document-revisions\u002Fwp-document-revisions\u002Factions\u002Fworkflows\u002Fci.yml\" rel=\"nofollow ugc\">CI Status\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-document-revisions\u002Fwp-document-revisions-Code-Cookbook\" rel=\"nofollow ugc\">Code Cookbook\u003C\u002Fa>\u003C\u002Fstrong> – Code examples and customizations\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fcrowdin.com\u002Fproject\u002Fwordpress-document-revisions\" rel=\"nofollow ugc\">Translations\u003C\u002Fa>\u003C\u002Fstrong> (Crowdin)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwp-document-revisions.github.io\u002Fwp-document-revisions\u002FSUPPORT\u002F\" rel=\"nofollow ugc\">Where to get Support or Report an Issue\u003C\u002Fa>\u003C\u002Fstrong> – Get help when you need it\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwp-document-revisions.github.io\u002Fwp-document-revisions\u002FCONTRIBUTING\u002F\" rel=\"nofollow ugc\">How to Contribute\u003C\u002Fa>\u003C\u002Fstrong> – Join our community\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Translations\u003C\u002Fh3>\n\u003Cp>Interested in translating WP Document Revisions? You can do so \u003Ca href=\"https:\u002F\u002Fcrowdin.com\u002Fproject\u002Fwordpress-document-revisions\" rel=\"nofollow ugc\">via Crowdin\u003C\u002Fa>, or by submitting a pull request.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>French – \u003Ca href=\"http:\u002F\u002Fomnimaki.com\u002F\" rel=\"nofollow ugc\">Hubert CAMPAN\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Spanish – \u003Ca href=\"https:\u002F\u002Fwww.ibidemgroup.com\" rel=\"nofollow ugc\">IBIDEM GROUP\u003C\u002Fa>, \u003Ca href=\"http:\u002F\u002Fwww.tradiart.com\u002F\" rel=\"nofollow ugc\">TradiArt\u003C\u002Fa>, and \u003Ca href=\"http:\u002F\u002Fwww.labitacoradeltigre.com\" rel=\"nofollow ugc\">elarequi\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Norwegian – Daniel Haugen\u003C\u002Fli>\n\u003Cli>German –\u003Ca href=\"http:\u002F\u002Fen.wp.obenland.it\u002F\" rel=\"nofollow ugc\">Konstantin Obenland\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Chinese – Tim Ren\u003C\u002Fli>\n\u003Cli>Swedish – Daniel Kroon, \u003Ca href=\"http:\u002F\u002Fwww.examinare.biz\u002F\" rel=\"nofollow ugc\">Examinare AB\u003C\u002Fa>, Sweden.\u003C\u002Fli>\n\u003Cli>Czech – Hynek Šťavík\u003C\u002Fli>\n\u003Cli>Italian – @guterboit\u003C\u002Fli>\n\u003Cli>Russian – Evgeny Vlasov\u003C\u002Fli>\n\u003Cli>Dutch – @tijscruysen\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Useful plugins and tools\u003C\u002Fh3>\n\u003Ch4>Permissions management\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fmembers\u002F\" rel=\"ugc\">Members – Membership & User Role Editor Plugin\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>(Previously called Members)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Taxonomy management\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fsimple-taxonomy-refreshed\u002F\" rel=\"ugc\">Simple Taxonomy Refreshed\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Email notification and distribution\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Femail-notice-wp-document-revisions\u002F\" rel=\"ugc\">Email Notice for WP Document Revisions\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Document workflow management\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fedit-flow\u002F\" rel=\"ugc\">Edit Flow\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpublishpress-statuses\u002F\" rel=\"ugc\">PublishPress Statuses\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpublishpress-revisions\u002F\" rel=\"ugc\">PublishPress Revisions\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Security\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Fix CVE-2025-68585: Add missing authorization check to update_post_slug_field by @Copilot in https:\u002F\u002Fgithub.com\u002Fwp-document-revisions\u002Fwp-document-revisions\u002Fpull\u002F429\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Bug fixes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Address Link Date field issue #389 by @NeilWJames in https:\u002F\u002Fgithub.com\u002Fwp-document-revisions\u002Fwp-document-revisions\u002Fpull\u002F390\u003C\u002Fli>\n\u003Cli>Address #414 – Bug on upload, Cannot read properties of undefined by @NeilWJames in https:\u002F\u002Fgithub.com\u002Fwp-document-revisions\u002Fwp-document-revisions\u002Fpull\u002F417\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Developer fixes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Fix PHPDoc tags: Replace non-standard @returns with @return by @Copilot in https:\u002F\u002Fgithub.com\u002Fwp-document-revisions\u002Fwp-document-revisions\u002Fpull\u002F394\u003C\u002Fli>\n\u003Cli>Improve test suite with better assertions, edge cases, and utility coverage by @Copilot in https:\u002F\u002Fgithub.com\u002Fwp-document-revisions\u002Fwp-document-revisions\u002Fpull\u002F392\u003C\u002Fli>\n\u003Cli>Optimize performance: reduce database queries and regex operations by @Copilot in https:\u002F\u002Fgithub.com\u002Fwp-document-revisions\u002Fwp-document-revisions\u002Fpull\u002F402\u003C\u002Fli>\n\u003Cli>Fix: Regenerate minified JS files and prevent Prettier from formatting them by @Copilot in https:\u002F\u002Fgithub.com\u002Fwp-document-revisions\u002Fwp-document-revisions\u002Fpull\u002F404\u003C\u002Fli>\n\u003Cli>Add comprehensive front-end JavaScript test suite by @Copilot in https:\u002F\u002Fgithub.com\u002Fwp-document-revisions\u002Fwp-document-revisions\u002Fpull\u002F410\u003C\u002Fli>\n\u003Cli>Small corrections by @NeilWJames in https:\u002F\u002Fgithub.com\u002Fwp-document-revisions\u002Fwp-document-revisions\u002Fpull\u002F408\u003C\u002Fli>\n\u003Cli>Replace PHPUnit string assertions with strpos-based alternatives for compatibility by @Copilot in https:\u002F\u002Fgithub.com\u002Fwp-document-revisions\u002Fwp-document-revisions\u002Fpull\u002F434\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Full Changelog\u003C\u002Fstrong>: https:\u002F\u002Fgithub.com\u002Fwp-document-revisions\u002Fwp-document-revisions\u002Fcompare\u002F3.7.2…v3.8.0\u003C\u002Fp>\n\u003Ch4>3.7.2\u003C\u002Fh4>\n\u003Cp>Correct plugin metadata (no code changes).\u003C\u002Fp>\n\u003Ch4>3.7.1\u003C\u002Fh4>\n\u003Cp>For complete changelog, see \u003Ca href=\"https:\u002F\u002Fwp-document-revisions.github.io\u002Fwp-document-revisions\u002Fchangelog\u002F\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>\u003C\u002Fp>\n","A document management and version control plugin for WordPress that allows teams of any size to collaboratively edit files and manage their workflow.",2000,169522,74,23,"2025-12-26T19:52:00.000Z","6.9.4","4.9","",[20,21,22,23,24],"collaboration","document-management","documents","revisions","version-control","http:\u002F\u002Fben.balter.com\u002F2011\u002F08\u002F29\u002Fwp-document-revisions-document-management-version-control-wordpress\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-document-revisions.3.8.1.zip",99,1,0,"2025-12-25 00:00:00","2026-03-15T15:16:48.613Z",[33],{"id":34,"url_slug":35,"title":36,"description":37,"plugin_slug":4,"theme_slug":38,"affected_versions":39,"patched_in_version":40,"severity":41,"cvss_score":42,"cvss_vector":43,"vuln_type":44,"published_date":30,"updated_date":45,"references":46,"days_to_patch":48},"CVE-2025-68585","document-revisions-missing-authorization","Document Revisions \u003C= 3.7.2 - Missing Authorization","The WP Document Revisions plugin for WordPress is vulnerable to unauthorized access due to a missing capability check on a function in all versions up to, and including, 3.7.2. This makes it possible for authenticated attackers, with Author-level access and above, to perform an unauthorized action.",null,"\u003C=3.7.2","3.8.0","medium",4.3,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:L\u002FUI:N\u002FS:U\u002FC:N\u002FI:L\u002FA:N","Missing Authorization","2026-01-06 14:44:01",[47],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F845c4c37-ed90-40a1-9400-951214534060?source=api-prod",13,{"slug":50,"display_name":7,"profile_url":8,"plugin_count":51,"total_installs":52,"avg_security_score":53,"avg_patch_time_days":48,"trust_score":54,"computed_at":55},"benbalter",7,2790,89,86,"2026-04-04T05:52:34.342Z",[57,81,101,120,139],{"slug":58,"name":59,"version":60,"author":61,"author_profile":62,"description":63,"short_description":64,"active_installs":65,"downloaded":66,"rating":67,"num_ratings":68,"last_updated":69,"tested_up_to":70,"requires_at_least":71,"requires_php":18,"tags":72,"homepage":76,"download_link":77,"security_score":78,"vuln_count":79,"unpatched_count":29,"last_vuln_date":80,"fetched_at":31},"buddypress-docs","BuddyPress Docs","2.2.6","Boone Gorges","https:\u002F\u002Fprofiles.wordpress.org\u002Fboonebgorges\u002F","\u003Cp>BuddyPress Docs adds collaborative work spaces to your BuddyPress community. Part wiki, part document editing, part shared dropbox, think of these Docs as a BuddyPress version of the Docs service offered by the Big G \u003Cem>ifyouknowwhatimean\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>Features include:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Docs that can be linked to groups or users, with a variety of privacy levels\u003C\u002Fli>\n\u003Cli>Support for fully-private document uploads\u003C\u002Fli>\n\u003Cli>Doc taxonomy, using tags\u003C\u002Fli>\n\u003Cli>Fully sortable and filterable doc lists\u003C\u002Fli>\n\u003Cli>TinyMCE front-end doc editing\u003C\u002Fli>\n\u003Cli>One-editor-at-a-time prevention against overwrites, plus idle detection\u002Fautosave\u003C\u002Fli>\n\u003Cli>Full access to revision history\u003C\u002Fli>\n\u003Cli>Dashboard access and management of Docs for the site admin\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This plugin is in active development. For feature requests and bug reports, visit http:\u002F\u002Fgithub.com\u002Fboonebgorges\u002Fbuddypress-docs. If you have translated the plugin and would like to provide your translation for distribution with BuddyPress Docs, please contact the plugin author.\u003C\u002Fp>\n","Adds collaborative Docs to BuddyPress.",7000,321667,88,35,"2025-08-20T17:41:00.000Z","6.8.5","3.3",[73,20,74,22,75],"buddypress","docs","wiki","http:\u002F\u002Fgithub.com\u002Fboonebgorges\u002Fbuddypress-docs","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbuddypress-docs.2.2.6.zip",97,3,"2025-06-06 00:00:00",{"slug":82,"name":83,"version":84,"author":85,"author_profile":86,"description":87,"short_description":88,"active_installs":89,"downloaded":90,"rating":67,"num_ratings":91,"last_updated":92,"tested_up_to":16,"requires_at_least":93,"requires_php":94,"tags":95,"homepage":18,"download_link":99,"security_score":100,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":31},"catfolders-document-gallery","Document Gallery – Display PDF Gallery from Many Folders","2.0.4","CatFolders","https:\u002F\u002Fprofiles.wordpress.org\u002Fcatfolders\u002F","\u003Cp>\u003Cstrong>Document Gallery\u003C\u002Fstrong> is a 100% free addon for \u003Cstrong>CatFolders, a WordPress media folder plugin\u003C\u002Fstrong>. It allows users to create and display file galleries (especially for documents like PDFs, Word, Excel files, ebooks, etc.) directly on posts or pages using the block editor or a shortcode.\u003C\u002Fp>\n\u003Cp>With \u003Cstrong>Document Gallery\u003C\u002Fstrong>, you can:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Display a folder’s documents in a neat grid or list view.\u003C\u002Fli>\n\u003Cli>Enable front-end file previews and downloads.\u003C\u002Fli>\n\u003Cli>Customize how file titles, icons, and other metadata appear.\u003C\u002Fli>\n\u003Cli>Filter files by folder, type, date, or topic.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>💥 \u003Cstrong>New Feature: Nested Folders with Breadcrumb Navigation!\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>The CatFolders Document Gallery now supports \u003Cstrong>multi-level folder structure\u003C\u002Fstrong>, making it easier than ever to organize and present your documents. With intuitive breadcrumb navigation, your website visitors can quickly explore subfolders and find exactly what they need!\u003C\u002Fp>\n\u003Cp>📌 \u003Ca href=\"https:\u002F\u002Fwpmediafolders.com\u002Fdocs\u002Faddons\u002Fdocument-gallery\u002F\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwpmediafolders.com\u002Fcatfolders-document-gallery-demo\u002F\" rel=\"nofollow ugc\">Quick Demo\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>It will save you a huge amount of time thanks to these built-in features:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Two customizable layouts: \u003Cstrong>list\u003C\u002Fstrong> and \u003Cstrong>grid\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Over 5 file details available:: title, file type, icon, file size, updated date, and download link\u003C\u002Fli>\n\u003Cli>Automatically shows \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwpmediafolders.com\u002Fdocs\u002Faddons\u002Fdocument-gallery\u002Fthumbnails\u002F\" rel=\"nofollow ugc\">PDF first-page thumbnails\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Supports all standard WordPress media file types\u003C\u002Fli>\n\u003Cli>Fully mobile responsive\u003C\u002Fli>\n\u003Cli>Clean, modern gallery design\u003C\u002Fli>\n\u003Cli>Option to show or hide specific columns\u003C\u002Fli>\n\u003Cli>Built-in file title search box\u003C\u002Fli>\n\u003Cli>Sort files by size, title, file type, or last modified date\u003C\u002Fli>\n\u003Cli>Flexible pagination settings\u003C\u002Fli>\n\u003Cli>Click to preview, open in a popup, or download any file\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>🎯 FEATURES\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>CatFolders Document Gallery\u003C\u002Fstrong> support displaying all WordPress file types:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Documents: pdf, doc, ppt, odt, xls\u003C\u002Fli>\n\u003Cli>Graphics: psd, svg\u003C\u002Fli>\n\u003Cli>eBooks: epub, mobi, azw, azw3\u003C\u002Fli>\n\u003Cli>Images: jpg, jpeg, png, gif, ico, webp\u003C\u002Fli>\n\u003Cli>Audios: mp3, m4a, ogg, wav\u003C\u002Fli>\n\u003Cli>Videos: mp4, mov, wmv, avi, mpg\u003C\u002Fli>\n\u003Cli>Others: svg, zip, json, and custom file types\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>To get started with this WordPress PDF gallery plugin, simply follow these steps:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Install CatFolders – \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcatfolders\u002F\" rel=\"ugc\">WP Media Folders free\u003C\u002Fa>, or \u003Ca href=\"https:\u002F\u002Fwpmediafolders.com\u002F\" rel=\"nofollow ugc\">CatFolders pro version\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Install CatFolders Document Gallery (this plugin)\u003C\u002Fli>\n\u003Cli>Start organizing documents into folders\u003C\u002Fli>\n\u003Cli>Pick a folder to create WordPress gallery from folder\u003C\u002Fli>\n\u003Cli>Customize the gallery appearances and publish\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FgLxi4CTItKE?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n\u003Ch3>💪 WHY YOU SHOULD USE DOCUMENT GALLERY BY CATFOLDERS?\u003C\u002Fh3>\n\u003Cp>It’s especially useful for WordPress websites that offer downloadable resources, such as:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>eCommerce websites offering \u003Cstrong>digital products\u003C\u002Fstrong> or \u003Cstrong>file downloads\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Membership sites providing gated access to \u003Cstrong>exclusive files\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Schools or universities sharing \u003Cstrong>study materials\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Companies providing \u003Cstrong>white papers\u003C\u002Fstrong> or \u003Cstrong>reports\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Nonprofits sharing \u003Cstrong>brochures\u003C\u002Fstrong> and \u003Cstrong>legal docs\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Let’s bring your file collections to life on the front end—keep users engaged and guide them toward action.\u003Cbr \u002F>\nHere’s what you get:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Live content syncing\u003C\u002Fstrong>: Any changes made to your media folders are instantly reflected wherever they’re displayed—no need to edit pages manually.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Easy to explore\u003C\u002Fstrong>: Visitors can quickly locate files with a built-in search bar and organize the view by date, name, size, popularity, and more.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Smooth browsing experience\u003C\u002Fstrong>: Load more items dynamically without refreshing the page, keeping navigation seamless.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Optimized for all devices\u003C\u002Fstrong>: Whether on desktop, tablet, or smartphone, your content adapts beautifully to every screen.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>As an admin, you will get these advantages of the customization options:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Easily tweak the layout and columns.\u003C\u002Fli>\n\u003Cli>Create a WordPress file gallery that fits perfectly with your website’s design.\u003C\u002Fli>\n\u003Cli>Keep your documents and files organized within folders.\u003C\u002Fli>\n\u003Cli>Dynamically update your galleries.\u003C\u002Fli>\n\u003Cli>100% free: No need to upgrade as this is already packed with premium features. Yay!\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>As you add new documents to your folders, it will automatically reflect those changes. This will ensure that your visitors always have access to the most up-to-date information.\u003C\u002Fp>\n\u003Cp>Happy gallery-ing 💖\u003C\u002Fp>\n","Display WordPress PDF gallery and file gallery from folder. Comes with a clean, searchable & sortable list\u002Fgrid layout.",3000,28654,12,"2025-12-10T14:38:00.000Z","6.1","7.0",[96,21,22,97,98],"document-library","file-gallery","pdf","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcatfolders-document-gallery.2.0.4.zip",100,{"slug":102,"name":103,"version":104,"author":7,"author_profile":8,"description":105,"short_description":106,"active_installs":107,"downloaded":108,"rating":100,"num_ratings":109,"last_updated":110,"tested_up_to":111,"requires_at_least":112,"requires_php":18,"tags":113,"homepage":117,"download_link":118,"security_score":119,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":31},"post-forking","Post Forking","0.2.1","\u003Cp>WordPress Post Forking allows users to “fork” or create an alternate version of content to foster a more collaborative approach to WordPress content curation. This can be used, for example, to allow external users (such as visitors to your site) or internal users (such as other authors) with the ability to submit proposed revisions. It can even be used on smaller or single-author sites to enable post authors to edit published posts without their changes appearing immediately. If you’re familiar with Git, or other decentralized version control systems, you’re already familiar with WordPress post forking.\u003C\u002Fp>\n\u003Ch4>How might you use it?\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Allowing users without edit or publish post capabilities to edit and submit changes to content (similar to \u003Ca href=\"https:\u002F\u002Fhelp.github.com\u002Farticles\u002Fusing-pull-requests\" rel=\"nofollow ugc\">GitHub’s pull request system\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Collaborative editing (by resolving two users’ conflicted saves – \u003Ca href=\"http:\u002F\u002Fwww.wired.com\u002Fwiredenterprise\u002F2012\u002F02\u002Fgithub-revisited\u002F\" rel=\"nofollow ugc\">Wired’s example\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Saving draft changes of already-published content\u003C\u002Fli>\n\u003Cli>Scheduling pending changes to already-published content\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>How does it work?\u003C\u002Fh4>\n\u003Cp>When a user without the \u003Ccode>edit_post\u003C\u002Fcode> capability attempts to edit a given post, WordPress will automatically create a “fork” or alternate version of the post which they can freely edit. The edit screen will look just like the standard post editing interface that they are used to. When they’re done, they simply click “submit for review.” At this point, the fork goes into the standard WordPress moderation queue (just like any time an author without the \u003Ccode>publish_post\u003C\u002Fcode> capability submits a post), where an editor can review, and potentially approve the changes for publishing. If the changes can be automatically merged, the original post will be updated, otherwise, the editor will be presented with the ability to resolve the conflicting changes. All this is done using WordPress’s built-in custom post type, revision, and diff functionality, so it should look familiar to most WordPress users.\u003C\u002Fp>\n\u003Ch4>Concepts\u003C\u002Fh4>\n\u003Cp>WordPress Post Forking introduces many of Git’s well-established conventions to the WordPress world, and as a result, uses a unique vocabulary to describe what it does:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Post\u003C\u002Fstrong> – Any WordPress post that uses the \u003Ccode>post_content\u003C\u002Fcode> field, including posts, pages, and custom post types\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Fork\u003C\u002Fstrong> – Clone of a post intended for editing without disturbing the parent post\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Branch\u003C\u002Fstrong> – Parallel versions of the same parent post, owned by the post author\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Merge\u003C\u002Fstrong> – To push a fork’s changes back into its parent post\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Conflict\u003C\u002Fstrong> – When a post is forked if a given line is changed on the fork, and that same line is subsequently edited on the parent post prior to the merge, the post cannot be automatically merged, and the conflict is presented to the merger to resolve\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Why this plugin?\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fben.balter.com\u002F2012\u002F02\u002F28\u002Fgithub-for-journalism-what-wordpress-post-forking-could-do-to-editorial-workflows\u002F\" rel=\"nofollow ugc\">GitHub for Journalism — What WordPress Post Forking could do to Editorial Workflows\u003Cbr \u002F>\n\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Project Status\u003C\u002Fh4>\n\u003Cp>This version constitutes an initial release designed to showcase the plugin’s core functionality and is intended to be improved upon with additional features and refinements as the project evolves. Please consider \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbenbalter\u002Fpost-forking\u002Fwiki\u002FHow-to-Contribute\" rel=\"nofollow ugc\">contributing your time\u003C\u002Fa> to help improve the project.\u003C\u002Fp>\n\u003Ch4>More Information\u003C\u002Fh4>\n\u003Cp>For more information, or to contribute to this documentation, please visit the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbenbalter\u002Fpost-forking\u002Fwiki\" rel=\"nofollow ugc\">Post Forking project wiki\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>[Photo courtesy \u003Ca href=\"http:\u002F\u002Fwww.flickr.com\u002Fphotos\u002Fbabomike\u002F5626846346\u002F\" rel=\"nofollow ugc\">babomike\u003C\u002Fa>]\u003C\u002Fp>\n\u003Ch3>How To Contribute\u003C\u002Fh3>\n\u003Cp>Post Forking is an open source project and is supported by the efforts of an entire community. We’d love for you to get involved. Whatever your level of skill or however much time you can give, your contribution is greatly appreciated.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Everyone\u003C\u002Fstrong> – Help expand \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbenbalter\u002Fpost-forking\u002Fwiki\u002F\" rel=\"nofollow ugc\">the project’s documentation wiki\u003C\u002Fa> and answer questions in the support forums to make it easier for other users to get started, or join the discussion on the \u003Ca href=\"http:\u002F\u002Fpostforking.wordpress.com\" rel=\"nofollow ugc\">P2 (Blog)\u003C\u002Fa> to help shape the project’s future.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Users\u003C\u002Fstrong> – Download the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbenbalter\u002Fpost-forking\u002Ftree\u002Fdevelop\" rel=\"nofollow ugc\">latest development version\u003C\u002Fa> of the plugin, and \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbenbalter\u002Fpost-forking\u002Fissues\" rel=\"nofollow ugc\">submit bug\u002Ffeature requests\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Non-English Speakers\u003C\u002Fstrong> – \u003Ca href=\"http:\u002F\u002Ftranslations.benbalter.com\u002F\" rel=\"nofollow ugc\">Contribute a translation\u003C\u002Fa> using the GlotPress web interface – no technical knowledge required (\u003Ca href=\"http:\u002F\u002Ftranslations.benbalter.com\u002Fprojects\u002Fhow-to-translate\" rel=\"nofollow ugc\">how to\u003C\u002Fa>).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Technical Folks\u003C\u002Fstrong> – \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbenbalter\u002Fpost-forking\u002Ftree\u002Fdevelop\" rel=\"nofollow ugc\">Fork the development version\u003C\u002Fa> and submit a pull request, especially for any \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbenbalter\u002Fpost-forking\u002Fissues\" rel=\"nofollow ugc\">known issues\u003C\u002Fa>. \u003Ca href=\"https:\u002F\u002Fhelp.github.com\u002Farticles\u002Fset-up-git\" rel=\"nofollow ugc\">This tutorial\u003C\u002Fa> may be helpful if you’re new to git.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Roadmap\u003C\u002Fh3>\n\u003Ch4>Future Features (Maybe):\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Front end editing (just click edit, make your change, hit submit)\u003C\u002Fli>\n\u003Cli>Ability to fork more than just the \u003Ccode>post_content\u003C\u002Fcode> (e.g., taxonomies, post meta)\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbenbalter\u002Fpost-forking\u002Fissues\u002F15\" rel=\"nofollow ugc\">Appending parent revision history to fork\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Spoofing \u003Ccode>post_type\u003C\u002Fcode> so metaboxes, etc. appear\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbenbalter\u002Fpost-forking\u002Fissues\u002F17\" rel=\"nofollow ugc\">Author pages for fork contributors\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbenbalter\u002Fpost-forking\u002Fissues?labels=enhancement&page=1&state=open\" rel=\"nofollow ugc\">Open Enhancements\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Under The Hood\u003C\u002Fh3>\n\u003Cp>** \u003Cstrong>Warning: geek content!\u003C\u002Fstrong> **\u003C\u002Fp>\n\u003Cp>Forking a post creates a copy of the most recent version of the post as a “fork” custom post type. Certain fields (e.g., \u003Ccode>post_content\u003C\u002Fcode>, \u003Ccode>post_title\u003C\u002Fcode>) are copied over to the new fork. The plugin also stores the revision ID for the revision prior to when the fork was created (see \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbenbalter\u002Fpost-forking\u002Fblob\u002Fmaster\u002Fincludes\u002Frevisions.php#L2\" rel=\"nofollow ugc\">\u003Ccode>includes\u002Frevisions.php\u003C\u002Fcode>\u003C\u002Fa> for more information as to why we store the previous revision).\u003C\u002Fp>\n\u003Cp>The fork post type has its own capabilities, allowing a user without the ability to edit or publish on the parent post to edit a fork. Once changes have been made, assuming the user does not have the \u003Ccode>publish_fork\u003C\u002Fcode> capability, the user would submit the fork for review (similar to submitting a Pull Request in GitHub parlance) using the normal WordPress moderation system.\u003C\u002Fp>\n\u003Cp>Publishing a fork (either by the fork author, if they have the capability, or my an editor) triggers the merge itself. The post content of the fork undergoes a three way merge with the base revision and current version of the parent post.\u003C\u002Fp>\n\u003Cp>A fork can have three post statuses:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Draft – The fork is being edited\u003C\u002Fli>\n\u003Cli>Pending – The fork has been submitted for publication\u003C\u002Fli>\n\u003Cli>Published – The fork has been merged\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Note: No user should have the \u003Ccode>edit_published_fork\u003C\u002Fcode> capability. Once published, the fork post_type simply exists to provide a record of the change and allow the author page, to theoretically list contributions by author.\u003C\u002Fp>\n\u003Ch3>Where To Get Support Or Report An Issue\u003C\u002Fh3>\n\u003Cp>\u003Cem>There are various resources available, depending on the type of help you’re looking for:\u003C\u002Fem>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>For getting started and general documentation, please browse, and feel free to contribute to \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbenbalter\u002Fpost-forking\u002Fwiki\" rel=\"nofollow ugc\">the project wiki\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>For support questions (“How do I”, “I can’t seem to”, etc.) please search and if not already answered, open a thread in the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fpost-forking\" rel=\"ugc\">Support Forums\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>For technical issues (e.g., to submit a bug or feature request) please search and if not already filed, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbenbalter\u002Fpost-forking\u002Fissues\" rel=\"nofollow ugc\">open an issue on GitHub\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>For implementation, and all general questions (“Is it possible to..”, “Has anyone…”), please search, and if not already answered, post a topic to the \u003Ca href=\"https:\u002F\u002Fgroups.google.com\u002Fforum\u002F#!forum\u002Fpost-forking\" rel=\"nofollow ugc\">general discussion list serve\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>For general discussion about the project and planning, please see the \u003Ca href=\"http:\u002F\u002Fpostforking.wordpress.com\" rel=\"nofollow ugc\">P2\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","WordPress Post Forking allows users to fork or create an alternate version of content to foster a more collaborative approach to WordPress content cur &hellip;",20,7785,5,"2013-09-26T21:12:00.000Z","3.6.1","3.5",[20,114,115,116,24],"forking","forks","posts","http:\u002F\u002Fpostforking.wordpress.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-forking.0.2.1.zip",85,{"slug":121,"name":122,"version":123,"author":124,"author_profile":125,"description":126,"short_description":127,"active_installs":128,"downloaded":129,"rating":29,"num_ratings":29,"last_updated":18,"tested_up_to":130,"requires_at_least":131,"requires_php":18,"tags":132,"homepage":136,"download_link":137,"security_score":100,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":138},"wp-github-sync-meta","WP GitHub Sync Meta","1.2","lite3","https:\u002F\u002Fprofiles.wordpress.org\u002Flite3\u002F","\u003Cp>\u003Cem>A WordPress plugin to sync meta, tags and categories with a GitHub via wp-github-sync\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>This plugin Requires \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwp-github-sync\u002F\" rel=\"ugc\">WordPress guithub Sync\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Related Links:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fwww.litefeel.com\u002F\" title=\"Author For WP GitHub Sync Meta\" rel=\"nofollow ugc\">Author Homepage\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flite3\u002Fwp-github-sync-meta\" title=\"On GitHub\" rel=\"nofollow ugc\">On GitHub\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","A WordPress plugin to sync meta, tags and categories with a GitHub via wp-github-sync",10,1378,"4.7.32","4.2",[20,133,134,135,24],"content","git","github","https:\u002F\u002Fgithub.com\u002Flite3\u002Fwp-github-sync-meta","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-github-sync-meta.1.2.zip","2026-03-15T10:48:56.248Z",{"slug":140,"name":141,"version":142,"author":143,"author_profile":144,"description":145,"short_description":146,"active_installs":128,"downloaded":147,"rating":148,"num_ratings":79,"last_updated":18,"tested_up_to":149,"requires_at_least":150,"requires_php":18,"tags":151,"homepage":152,"download_link":153,"security_score":100,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":138},"writing-on-github","Writing On GitHub","1.11","litefeel","https:\u002F\u002Fprofiles.wordpress.org\u002Flitefeel\u002F","\u003Cp>\u003Cem>A WordPress plugin to allow you writing on GitHub (or Jekyll site).\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>Some code for this plugin comes from \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FmAAdhaTTah\u002Fwordpress-github-sync\" rel=\"nofollow ugc\">WordPress GitHub Sync\u003C\u002Fa>, thanks.\u003C\u002Fp>\n\u003Cp>Ever wish you could collaboratively author content for your WordPress site (or expose change history publicly and accept pull requests from your readers)?\u003C\u002Fp>\n\u003Cp>Well, now you can! Introducing \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flitefeel\u002Fwriting-on-github\" rel=\"nofollow ugc\">Writing On GitHub\u003C\u002Fa>!\u003C\u002Fp>\n\u003Ch4>Writing On GitHub does three things:\u003C\u002Fh4>\n\u003Col>\n\u003Cli>Allows content publishers to version their content in GitHub\u003C\u002Fli>\n\u003Cli>Allows readers to submit proposed improvements to WordPress-served content via GitHub’s Pull Request model\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Writing On GitHub might be able to do some other cool things:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Allow teams to collaboratively write and edit posts using GitHub (e.g., pull requests, issues, comments)\u003C\u002Fli>\n\u003Cli>Allow you to sync the content of two different WordPress installations via GitHub\u003C\u002Fli>\n\u003Cli>Allow you to stage and preview content before “deploying” to your production server\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>How it works\u003C\u002Fh4>\n\u003Cp>The sync action is based on two hooks:\u003C\u002Fp>\n\u003Col>\n\u003Cli>A per-post sync fired in response to WordPress’s \u003Ccode>save_post\u003C\u002Fcode> hook which pushes content to GitHub\u003C\u002Fli>\n\u003Cli>A sync of all changed files triggered by GitHub’s \u003Ccode>push\u003C\u002Fcode> webhook (outbound API call)\u003C\u002Fli>\n\u003C\u002Fol>\n","A WordPress plugin to allow you writing on GitHub (or Jekyll site).",2602,94,"5.4.19","3.9",[20,133,134,135,24],"https:\u002F\u002Fgithub.com\u002Flitefeel\u002Fwriting-on-github","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwriting-on-github.zip",{"attackSurface":155,"codeSignals":651,"taintFlows":722,"riskAssessment":783,"analyzedAt":795},{"hooks":156,"ajaxHandlers":625,"restRoutes":635,"shortcodes":642,"cronEvents":650,"entryPointCount":109,"unprotectedCount":28},[157,162,167,170,174,178,182,186,190,194,197,199,202,205,209,213,217,221,225,227,231,234,237,241,244,248,251,254,258,262,266,270,274,277,281,284,288,292,296,301,305,309,313,316,320,323,328,332,336,338,340,342,346,349,351,353,358,362,367,371,376,380,383,387,392,395,399,403,405,407,409,413,416,418,420,423,426,431,434,438,442,445,447,450,452,455,459,462,466,469,473,477,481,484,488,492,496,499,504,508,512,515,519,523,525,529,533,537,540,544,548,551,555,559,562,564,569,573,576,579,582,586,588,590,592,595,598,601,605,607,609,611,613,617,619,621],{"type":158,"name":159,"callback":160,"file":161,"line":13},"filter","post_updated_messages","update_messages","includes\\class-wp-document-revisions-admin.php",{"type":163,"name":164,"callback":165,"file":161,"line":166},"action","admin_head","add_help_tab",75,{"type":163,"name":164,"callback":168,"priority":107,"file":161,"line":169},"make_private",78,{"type":163,"name":171,"callback":172,"priority":128,"file":161,"line":173},"set_object_terms","workflow_state_save",79,{"type":163,"name":175,"callback":176,"file":161,"line":177},"save_post_document","save_document",80,{"type":163,"name":179,"callback":180,"file":161,"line":181},"admin_init","enqueue_edit_scripts",81,{"type":163,"name":183,"callback":184,"priority":128,"file":161,"line":185},"_wp_put_post_revision","revision_filter",82,{"type":158,"name":187,"callback":188,"priority":128,"file":161,"line":189},"wp_save_post_revision_post_has_changed","identify_last_but_one",83,{"type":158,"name":191,"callback":192,"priority":128,"file":161,"line":193},"default_hidden_meta_boxes","hide_postcustom_metabox",84,{"type":163,"name":195,"callback":196,"priority":27,"file":161,"line":119},"admin_print_footer_scripts","bind_upload_cb",{"type":163,"name":164,"callback":198,"file":161,"line":54},"hide_upload_header",{"type":163,"name":164,"callback":200,"file":161,"line":201},"check_upload_files",87,{"type":158,"name":203,"callback":204,"file":161,"line":67},"media_upload_tabs","media_upload_tabs_computer",{"type":158,"name":206,"callback":207,"priority":128,"file":161,"line":208},"use_block_editor_for_post","no_use_block_editor",90,{"type":163,"name":210,"callback":211,"file":161,"line":212},"edit_form_after_title","prepare_editor",91,{"type":158,"name":214,"callback":215,"priority":128,"file":161,"line":216},"wp_editor_settings","document_editor_setting",92,{"type":158,"name":218,"callback":219,"file":161,"line":220},"tiny_mce_before_init","modify_content_class",93,{"type":158,"name":222,"callback":223,"file":161,"line":224},"manage_document_posts_columns","rename_author_column",96,{"type":158,"name":222,"callback":226,"priority":107,"file":161,"line":78},"add_currently_editing_column",{"type":163,"name":228,"callback":229,"priority":128,"file":161,"line":230},"manage_document_posts_custom_column","currently_editing_column_cb",98,{"type":163,"name":232,"callback":233,"file":161,"line":27},"restrict_manage_posts","filter_documents_list",{"type":158,"name":235,"callback":236,"file":161,"line":100},"parse_query","convert_workflow_state_to_post_status",{"type":158,"name":238,"callback":239,"priority":128,"file":161,"line":240},"wp_dropdown_users_args","filter_user_dropdown",101,{"type":163,"name":179,"callback":242,"file":161,"line":243},"settings_fields",104,{"type":163,"name":245,"callback":246,"file":161,"line":247},"update_wpmu_options","network_upload_location_save",105,{"type":163,"name":245,"callback":249,"file":161,"line":250},"network_slug_save",106,{"type":163,"name":245,"callback":252,"file":161,"line":253},"network_link_date_save",107,{"type":163,"name":255,"callback":256,"file":161,"line":257},"wpmu_options","network_settings_cb",108,{"type":163,"name":259,"callback":260,"file":161,"line":261},"network_admin_notices","network_settings_errors",109,{"type":158,"name":263,"callback":264,"file":161,"line":265},"wp_redirect","network_settings_redirect",110,{"type":163,"name":267,"callback":268,"file":161,"line":269},"show_user_profile","rss_key_display",113,{"type":163,"name":271,"callback":272,"file":161,"line":273},"personal_options_update","profile_update_cb",114,{"type":163,"name":275,"callback":272,"file":161,"line":276},"edit_user_profile_update",115,{"type":163,"name":278,"callback":279,"file":161,"line":280},"admin_enqueue_scripts","enqueue",118,{"type":163,"name":179,"callback":282,"file":161,"line":283},"filter_from_media",121,{"type":158,"name":285,"callback":286,"file":161,"line":287},"ajax_query_attachments_args","filter_from_media_grid",122,{"type":163,"name":289,"callback":290,"file":161,"line":291},"before_delete_post","list_attachments_with_document",125,{"type":163,"name":293,"callback":294,"file":161,"line":295},"delete_post","delete_attachments_with_document",126,{"type":163,"name":297,"callback":298,"priority":299,"file":161,"line":300},"init","disable_workflow_states",1901,129,{"type":158,"name":302,"callback":303,"file":161,"line":304},"admin_body_class","admin_body_class_filter",132,{"type":163,"name":306,"callback":307,"file":161,"line":308},"wp_dashboard_setup","setup_dashboard",135,{"type":163,"name":310,"callback":311,"file":161,"line":312},"admin_notices","check_document_revisions_limit",318,{"type":163,"name":310,"callback":314,"file":161,"line":315},"lock_notice",321,{"type":163,"name":317,"callback":318,"file":161,"line":319},"shutdown","flush_rewrite_rules",786,{"type":163,"name":321,"callback":321,"file":161,"line":322},"pre_user_query",1240,{"type":158,"name":324,"callback":325,"priority":326,"file":161,"line":327},"pre_delete_post","possibly_delete_revision",9999,1535,{"type":158,"name":329,"callback":330,"file":161,"line":331},"posts_join_paged","filter_media_join",1699,{"type":158,"name":333,"callback":334,"priority":107,"file":161,"line":335},"posts_where_paged","filter_media_where",1700,{"type":158,"name":329,"callback":330,"file":161,"line":337},1712,{"type":158,"name":333,"callback":334,"priority":107,"file":161,"line":339},1713,{"type":158,"name":324,"callback":325,"priority":326,"file":161,"line":341},1737,{"type":158,"name":343,"callback":344,"file":161,"line":345},"upload_dir","document_upload_dir_filter",1873,{"type":158,"name":347,"callback":347,"file":161,"line":348},"wp_delete_file",1874,{"type":158,"name":343,"callback":344,"file":161,"line":350},1894,{"type":158,"name":347,"callback":347,"file":161,"line":352},1895,{"type":158,"name":354,"callback":355,"file":356,"line":357},"document_shortcode_atts","shortcode_atts_hyphen_filter","includes\\class-wp-document-revisions-front-end.php",59,{"type":163,"name":359,"callback":360,"priority":100,"file":356,"line":361},"wp_loaded","documents_shortcode_blocks",62,{"type":163,"name":363,"callback":364,"priority":365,"file":356,"line":366},"wp_enqueue_scripts","enqueue_front",50,65,{"type":158,"name":368,"callback":369,"priority":128,"file":356,"line":370},"block_categories_all","wpdr_block_categories",554,{"type":158,"name":372,"callback":373,"priority":128,"file":374,"line":375},"rest_request_before_callbacks","document_validation","includes\\class-wp-document-revisions-manage-rest.php",46,{"type":158,"name":377,"callback":378,"priority":128,"file":374,"line":379},"rest_prepare_document","doc_clean_document",49,{"type":158,"name":381,"callback":382,"priority":128,"file":374,"line":365},"rest_prepare_revision","doc_clean_revision",{"type":158,"name":384,"callback":385,"priority":128,"file":374,"line":386},"rest_prepare_attachment","doc_clean_attachment",51,{"type":163,"name":388,"callback":389,"priority":107,"file":390,"line":391},"admin_menu","add_menu","includes\\class-wp-document-revisions-validate-structure.php",174,{"type":163,"name":278,"callback":393,"file":390,"line":394},"enqueue_scripts",176,{"type":163,"name":396,"callback":397,"file":390,"line":398},"rest_api_init","wpdr_register_route",177,{"type":158,"name":400,"callback":401,"priority":128,"file":390,"line":402},"get_attached_file","get_attached_file_filter",322,{"type":158,"name":400,"callback":401,"priority":128,"file":390,"line":404},381,{"type":158,"name":400,"callback":401,"priority":128,"file":390,"line":406},490,{"type":158,"name":400,"callback":401,"priority":128,"file":390,"line":408},895,{"type":163,"name":410,"callback":179,"file":411,"line":412},"plugins_loaded","includes\\class-wp-document-revisions.php",130,{"type":163,"name":297,"callback":414,"priority":109,"file":411,"line":415},"i18n",131,{"type":163,"name":310,"callback":417,"file":411,"line":304},"activation_error_notice",{"type":163,"name":297,"callback":419,"file":411,"line":308},"register_cpt",{"type":163,"name":297,"callback":421,"priority":11,"file":411,"line":422},"register_ct",136,{"type":163,"name":179,"callback":424,"file":411,"line":425},"initialize_workflow_states",137,{"type":158,"name":427,"callback":428,"priority":429,"file":411,"line":430},"update_post_term_count_statuses","review_count_statuses",30,144,{"type":163,"name":179,"callback":432,"priority":11,"file":411,"line":433},"register_term_count_cb",146,{"type":158,"name":435,"callback":436,"priority":28,"file":411,"line":437},"the_content","content_filter",148,{"type":163,"name":439,"callback":440,"file":411,"line":441},"pre_get_posts","retrieve_documents",151,{"type":163,"name":443,"callback":443,"file":411,"line":444},"generate_rewrite_rules",173,{"type":158,"name":446,"callback":446,"file":411,"line":391},"mod_rewrite_rules",{"type":158,"name":448,"callback":449,"file":411,"line":394},"rewrite_rules_array","revision_rewrite",{"type":158,"name":451,"callback":449,"file":411,"line":398},"transient_rewrite_rules",{"type":163,"name":297,"callback":453,"file":411,"line":454},"inject_rules",178,{"type":163,"name":456,"callback":457,"priority":128,"file":411,"line":458},"post_type_link","permalink",179,{"type":163,"name":460,"callback":457,"priority":128,"file":411,"line":461},"post_link",180,{"type":158,"name":463,"callback":464,"priority":128,"file":411,"line":465},"template_include","serve_file",181,{"type":158,"name":467,"callback":467,"priority":128,"file":411,"line":468},"serve_document_auth",182,{"type":163,"name":470,"callback":471,"file":411,"line":472},"parse_request","ie_cache_fix",183,{"type":158,"name":474,"callback":475,"priority":128,"file":411,"line":476},"query_vars","add_query_var",184,{"type":158,"name":478,"callback":479,"file":411,"line":480},"default_feed","hijack_feed",185,{"type":163,"name":482,"callback":482,"file":411,"line":483},"do_feed_revision_log",186,{"type":163,"name":485,"callback":486,"file":411,"line":487},"template_redirect","revision_feed_auth",187,{"type":158,"name":489,"callback":490,"priority":128,"file":411,"line":491},"get_sample_permalink_html","sample_permalink_html_filter",188,{"type":158,"name":493,"callback":494,"priority":128,"file":411,"line":495},"wp_get_attachment_url","attachment_url_filter",189,{"type":158,"name":497,"callback":497,"priority":128,"file":411,"line":498},"image_downsize",190,{"type":158,"name":500,"callback":501,"priority":502,"file":411,"line":503},"document_path","wamp_document_path_filter",9,191,{"type":158,"name":505,"callback":506,"priority":128,"file":411,"line":507},"redirect_canonical","redirect_canonical_filter",192,{"type":158,"name":509,"callback":510,"priority":107,"file":411,"line":511},"private_title_format","no_title_prepend",196,{"type":158,"name":513,"callback":510,"priority":107,"file":411,"line":514},"protected_title_format",197,{"type":158,"name":516,"callback":517,"priority":107,"file":411,"line":518},"the_title","add_revision_num_to_title",198,{"type":158,"name":520,"callback":521,"priority":128,"file":411,"line":522},"attachment_link","attachment_link_filter",201,{"type":158,"name":400,"callback":401,"priority":128,"file":411,"line":524},202,{"type":158,"name":526,"callback":527,"file":411,"line":528},"wp_handle_upload_prefilter","filename_rewrite",203,{"type":158,"name":530,"callback":531,"priority":128,"file":411,"line":532},"wp_handle_upload","rewrite_file_url",204,{"type":158,"name":534,"callback":535,"priority":109,"file":411,"line":536},"wp_generate_attachment_metadata","hide_doc_attach_slug",206,{"type":163,"name":175,"callback":538,"priority":107,"file":411,"line":539},"clear_cache",214,{"type":163,"name":541,"callback":542,"file":411,"line":543},"ef_module_options_loaded","edit_flow_support",217,{"type":163,"name":545,"callback":546,"priority":107,"file":411,"line":547},"pp_statuses_init","publishpress_statuses_support",218,{"type":163,"name":297,"callback":298,"priority":549,"file":411,"line":550},1900,220,{"type":158,"name":552,"callback":553,"priority":128,"file":411,"line":554},"get_the_excerpt","empty_excerpt_return",223,{"type":158,"name":556,"callback":557,"priority":128,"file":411,"line":558},"get_next_post_where","suppress_adjacent_doc",226,{"type":158,"name":560,"callback":557,"priority":128,"file":411,"line":561},"get_previous_post_where",227,{"type":158,"name":324,"callback":325,"priority":326,"file":411,"line":563},230,{"type":158,"name":565,"callback":566,"priority":567,"file":411,"line":568},"wp_revisions_to_keep","manage_document_revisions_limit",999,233,{"type":163,"name":570,"callback":571,"file":411,"line":572},"widgets_init","wpdr_widgets_init",246,{"type":163,"name":297,"callback":574,"priority":27,"file":411,"line":575},"wpdr_widgets_block_init",247,{"type":163,"name":396,"callback":577,"file":411,"line":578},"manage_rest",255,{"type":158,"name":580,"callback":580,"priority":128,"file":411,"line":581},"posts_results",559,{"type":158,"name":583,"callback":584,"priority":128,"file":411,"line":585},"post_thumbnail_size","document_featured_image_size",578,{"type":158,"name":493,"callback":494,"priority":128,"file":411,"line":587},1408,{"type":158,"name":493,"callback":494,"priority":128,"file":411,"line":589},1822,{"type":158,"name":343,"callback":344,"file":411,"line":591},2053,{"type":158,"name":222,"callback":593,"file":411,"line":594},"add_post_status_column",2864,{"type":163,"name":228,"callback":596,"priority":128,"file":411,"line":597},"post_status_column_cb",2865,{"type":158,"name":474,"callback":599,"priority":128,"file":411,"line":600},"add_qv_workflow_state",2868,{"type":158,"name":602,"callback":603,"file":411,"line":604},"document_use_workflow_states","__return_false",2872,{"type":158,"name":222,"callback":593,"file":411,"line":606},2990,{"type":163,"name":228,"callback":596,"priority":128,"file":411,"line":608},2991,{"type":158,"name":474,"callback":599,"priority":128,"file":411,"line":610},2994,{"type":158,"name":602,"callback":603,"file":411,"line":612},2998,{"type":158,"name":614,"callback":615,"file":411,"line":616},"query","term_count_query_filter",3216,{"type":158,"name":497,"callback":497,"priority":128,"file":411,"line":618},3411,{"type":158,"name":493,"callback":494,"priority":128,"file":411,"line":620},3412,{"type":158,"name":622,"callback":623,"file":411,"line":624},"nocache_headers","__return_empty_array",3595,[626,632],{"action":627,"nopriv":628,"callback":629,"hasNonce":630,"hasCapCheck":630,"file":411,"line":631},"sample-permalink",false,"update_post_slug_field",true,193,{"action":633,"nopriv":628,"callback":633,"hasNonce":630,"hasCapCheck":630,"file":411,"line":634},"override_lock",211,[636],{"namespace":637,"route":638,"methods":639,"callback":641,"permissionCallback":38,"file":390,"line":563},"wpdr\u002Fv1","correct\u002F(?P\u003Cid>[\\d]+)\u002Ftype\u002F(?P\u003Ccode>[\\d]+)\u002Fattach\u002F(?P\u003Cparm>[\\d]+)",[640],"GET","anonymous",[643,647],{"tag":644,"callback":645,"file":356,"line":646},"document_revisions","revisions_shortcode",57,{"tag":22,"callback":648,"file":356,"line":649},"documents_shortcode",58,[],{"dangerousFunctions":652,"sqlUsage":653,"outputEscaping":659,"fileOperations":719,"externalRequests":29,"nonceChecks":719,"capabilityChecks":720,"bundledLibraries":721},[],{"prepared":654,"raw":28,"locations":655},28,[656],{"file":390,"line":657,"context":658},478,"$wpdb->get_results() with variable interpolation",{"escaped":507,"rawEcho":660,"locations":661},29,[662,665,667,669,671,673,675,676,678,680,682,684,686,688,690,692,694,695,697,699,701,703,705,707,710,712,714,716,718],{"file":161,"line":663,"context":664},356,"raw output",{"file":356,"line":666,"context":664},435,{"file":356,"line":668,"context":664},465,{"file":670,"line":177,"context":664},"includes\\class-wp-document-revisions-recently-revised-widget.php",{"file":670,"line":672,"context":664},150,{"file":670,"line":674,"context":664},161,{"file":670,"line":454,"context":664},{"file":390,"line":677,"context":664},525,{"file":390,"line":679,"context":664},526,{"file":390,"line":681,"context":664},536,{"file":390,"line":683,"context":664},546,{"file":390,"line":685,"context":664},562,{"file":390,"line":687,"context":664},563,{"file":390,"line":689,"context":664},564,{"file":390,"line":691,"context":664},565,{"file":390,"line":693,"context":664},625,{"file":390,"line":693,"context":664},{"file":390,"line":696,"context":664},626,{"file":390,"line":698,"context":664},628,{"file":390,"line":700,"context":664},630,{"file":411,"line":702,"context":664},1569,{"file":411,"line":704,"context":664},1573,{"file":411,"line":706,"context":664},1615,{"file":708,"line":709,"context":664},"includes\\revision-feed.php",19,{"file":708,"line":711,"context":664},39,{"file":708,"line":713,"context":664},40,{"file":708,"line":715,"context":664},41,{"file":708,"line":717,"context":664},42,{"file":708,"line":386,"context":664},8,37,[],[723,740,774],{"entryPoint":724,"graph":725,"unsanitizedCount":29,"severity":739},"update_post_slug_field (includes\\class-wp-document-revisions.php:3343)",{"nodes":726,"edges":737},[727,732],{"id":728,"type":729,"label":730,"file":411,"line":731},"n0","source","$_POST",3347,{"id":733,"type":734,"label":735,"file":411,"line":736,"wp_function":614},"n1","sink","query() [SQLi]",3374,[738],{"from":728,"to":733,"sanitized":630},"low",{"entryPoint":741,"graph":742,"unsanitizedCount":29,"severity":739},"\u003Cclass-wp-document-revisions> (includes\\class-wp-document-revisions.php:0)",{"nodes":743,"edges":769},[744,747,751,755,760,762,765,767],{"id":728,"type":729,"label":745,"file":411,"line":746},"$_GET",2478,{"id":733,"type":734,"label":748,"file":411,"line":749,"wp_function":750},"get_var() [SQLi]",2499,"get_var",{"id":752,"type":729,"label":753,"file":411,"line":754},"n2","$_POST (x2)",2518,{"id":756,"type":734,"label":757,"file":411,"line":758,"wp_function":759},"n3","echo() [XSS]",2941,"echo",{"id":761,"type":729,"label":730,"file":411,"line":754},"n4",{"id":763,"type":734,"label":748,"file":411,"line":764,"wp_function":750},"n5",3170,{"id":766,"type":729,"label":730,"file":411,"line":731},"n6",{"id":768,"type":734,"label":735,"file":411,"line":736,"wp_function":614},"n7",[770,771,772,773],{"from":728,"to":733,"sanitized":630},{"from":752,"to":756,"sanitized":630},{"from":761,"to":763,"sanitized":630},{"from":766,"to":768,"sanitized":630},{"entryPoint":775,"graph":776,"unsanitizedCount":28,"severity":782},"validate_feed_key (includes\\class-wp-document-revisions.php:2467)",{"nodes":777,"edges":780},[778,779],{"id":728,"type":729,"label":745,"file":411,"line":746},{"id":733,"type":734,"label":748,"file":411,"line":749,"wp_function":750},[781],{"from":728,"to":733,"sanitized":628},"high",{"summary":784,"deductions":785},"The \"wp-document-revisions\" v3.8.1 plugin exhibits a generally good security posture with several strong practices in place. The vast majority of SQL queries are prepared, and a high percentage of output is properly escaped, indicating developers are aware of common web vulnerabilities. The presence of numerous capability checks and nonces suggests a commitment to securing entry points. However, the analysis reveals a critical weakness in its attack surface: one unprotected REST API route. This represents a significant risk, as it could be exploited by unauthenticated users to perform unintended actions or gain access to sensitive information. Furthermore, a taint analysis revealed a flow with unsanitized paths, and a critical severity taint, which could lead to path traversal or file manipulation vulnerabilities if not properly handled.  The vulnerability history shows a single medium-severity CVE, specifically related to missing authorization, which aligns with the identified unprotected REST API route. While there are no currently unpatched CVEs, this pattern of missing authorization highlights a recurring concern that needs to be addressed to prevent future exploitable vulnerabilities.",[786,789,791,793],{"reason":787,"points":788},"REST API route without permission callbacks",15,{"reason":790,"points":128},"Flow with unsanitized paths (taint analysis)",{"reason":792,"points":788},"Critical severity taint flow",{"reason":794,"points":109},"One unprotected entry point (total)","2026-03-16T18:34:25.935Z",{"wat":797,"direct":814},{"assetPaths":798,"generatorPatterns":805,"scriptPaths":806,"versionParams":807},[799,800,801,802,803,804],"\u002Fwp-content\u002Fplugins\u002Fwp-document-revisions\u002Fcss\u002Fwp-document-revisions-admin.css","\u002Fwp-content\u002Fplugins\u002Fwp-document-revisions\u002Fcss\u002Fwp-document-revisions-editor.css","\u002Fwp-content\u002Fplugins\u002Fwp-document-revisions\u002Fcss\u002Fwp-document-revisions-public.css","\u002Fwp-content\u002Fplugins\u002Fwp-document-revisions\u002Fjs\u002Fwp-document-revisions-admin.js","\u002Fwp-content\u002Fplugins\u002Fwp-document-revisions\u002Fjs\u002Fwp-document-revisions-editor.js","\u002Fwp-content\u002Fplugins\u002Fwp-document-revisions\u002Fjs\u002Fwp-document-revisions-public.js",[],[802,803,804],[808,809,810,811,812,813],"wp-document-revisions\u002Fcss\u002Fwp-document-revisions-admin.css?ver=","wp-document-revisions\u002Fcss\u002Fwp-document-revisions-editor.css?ver=","wp-document-revisions\u002Fcss\u002Fwp-document-revisions-public.css?ver=","wp-document-revisions\u002Fjs\u002Fwp-document-revisions-admin.js?ver=","wp-document-revisions\u002Fjs\u002Fwp-document-revisions-editor.js?ver=","wp-document-revisions\u002Fjs\u002Fwp-document-revisions-public.js?ver=",{"cssClasses":815,"htmlComments":818,"htmlAttributes":823,"restEndpoints":826,"jsGlobals":827,"shortcodeOutput":830},[816,817],"wpdr-document-editing","wpdr-editor-toolbar",[819,820,821,822],"\u003C!-- WP Document Revisions -->","\u003C!-- Last revision: -->","\u003C!-- Last but one revision: -->","\u003C!-- Document attachments -->",[824,825],"data-wpdr-revision-id","data-wpdr-post-id",[],[828,829],"wpdr_admin_params","wpdr_editor_params",[]]