Post Revision Workflow - 0.1a - Screenshot 3

Post Revision Workflow

Post Revision Workflow is a new plugin in development that will allow WordPress users to make changes to a published page or post without actually publishing the new modifications.


This plugin adds a minor bit of workflow to the WordPress interface. When anyone edits a post or a page that has already been published, a few extra options will be available in the “Publish” metabox. Any time the appropriate option is chosen, the changes will be saved as a revision to the page or post, and the previous revision (the version that was already published) will remain published.

The person editing the page can choose from the following four options:

  • Publish these modifications normally – This will avoid running any of the functions in this plugin and publish the changes the way they would normally be published. This is always the default.
  • Save these changes as a revision, but don’t notify anyone – This will revert the page or post to the version that was already published, saving the modifications as a post revision. This will not send out any notification emails.
  • Save these revisions as a draft and notify reviewer – This will revert the page or post to the version that was already published, saving the modifications as a post revision. This will also send out an email message to the email address entered in the options.
  • Publish these modifications, but notify a reviewer that changes were made – This will publish the changes normally, but will still dispatch a notification message to the email address provided.

If the third or fourth option is selected, a box will appear asking the user to provide an email address to which to send the notification message. If that box is left empty, the plugin will attempt to retrieve the value of the “dpn_reviewers” option from the individual site. If that option doesn’t exist, the “dpn_reviewers” option will be retrieved from the network (if installed in a multisite environment). No interface has been built yet (probably in the next version) to allow you to create/edit the “dpn_reviewers” option, so it will need to be inserted manually into the database if you want to use it. If neither of those options exist, the email address of the site’s admin will be used.


This plugin can be installed as a normal plugin, a multisite (network-active) plugin or a mu-plugin (must-use).

To install as a normal or multisite plugin manually:

  1. Download the ZIP file of the current version
  2. Unzip the file on your computer
  3. Upload the post-revision-workflow folder to /wp-content/plugins

To install as a normal or multisite plugin automatically:

  1. Visit Plugins -> Add New in your Site Admin (for normal WordPress installations) or Network Admin (for multisite WordPress installations) area
  2. Search for Post Revision Workflow
  3. Click the “Install” link for this plugin

To activate the plugin on a single site:

  1. Go to the Plugins menu within the Site Admin area and click the “Activate” link

To network-activate the plugin on a multisite network:

  1. Go to the Plugins menu within the Network Admin area and click the “Activate” link

To install as a mu-plugin:

  1. Download the ZIP file of the current version
  2. Unzip the file on your computer
  3. Upload all of the files inside of the post-revision-workflow folder into your /wp-content/mu-plugins directory. If you upload the post-revision-workflow folder itself, you will need to move post-revision-workflow.php out of that folder so it resides directly in /wp-content/mu-plugins

Frequently Asked Questions

How do I set the email address for the person or people that should be notified of changes?

Right now, there is no interface to set the email address as a sitewide or network-wide option. If you would like to set that option, you will need to add the “dpn_reviewers” option manually to the database (the options table or the sitemeta table for site options or network options, respectively).

Email addresses are used with the following priority (higher items on the list overriding all instances of items lower on the list):

  1. Email address entered in the box within the “Publish” metabox on the post/page edit screen
  2. “dpn_reviewers” option set in the options table
  3. “dpn_reviewers” option set in the sitemeta table
  4. Admin email address set within Site Admin -> Settings

Will this plugin work in a multisite environment?

Yes. It can be activated normally on each individual site or it can be network-activated.

Will this plugin work in a multi-network environment?

Yes. However, at this time, there are no action links to automatically activate it on all networks at once. Instead, it will have to be network-activated on each individual network (as desired).


To Do

  1. Add an interface to modify the email address(es) to which notification messages should be sent.
  2. Include multi-network activation options
  3. Implement the ability to add this functionality to custom post types

Known Issues

  1. The interface to review and approve modifications (the default revision comparison built into WordPress) is not extremely user-friendly. Some training will most likely be necessary to teach reviewers how to identify and approve the appropriate revisions.
  2. If multiple reviewers are notified of modifications, there is no easy way to let them all know when one of them reviews and approves (or potentially rejects) the changes.
  3. There is no interface currently available to delete revisions, which means there is no way (other than taking no action at all) to actually reject any changes.


The current version of this plugin can be downloaded from the WordPress repository.

7 thoughts on “Post Revision Workflow

  1. Pingback: Adding a Bit of Workflow to WordPress

  2. Pingback: Adding a Bit of Workflow to WordPress

  3. Pingback: Post Revision Workflow 0.2a | Ten-321 WordPress Plug-Ins

  4. Michael Shearer

    Hi, nice idea for a plugin. I would love to have a preview option to see the page as it would look on the site instead of just reviewing in the admin area.

    Am I missing something to be able to do this already?

  5. Dan

    Great Plugin, I’ve used it on a few projects – is there any support for saving meta data along with the main body content in the pipeline?

    1. Curtiss Grymala Post author

      Not within the plugin, no.

      I’ve only ever messed with WordPress once to make it save meta data with revisions (and restore that meta data when a revision is restored). To do so, I had to hook into the _wp_put_post_revision action and the wp_restore_post_revision action in order to properly save the meta data (WordPress, by default, only stores meta data with the current version of the post/page) and restore it after the revision is restored. Basically, when saving, you have to update the meta data to use the ID of the revision, rather than the ID of the post; and when restoring, you have to update the meta data again to use the ID of the post, rather than the revision’s ID.


Leave a Reply

Your email address will not be published. Required fields are marked *