This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.



This plugin implements a post meta revisioning feature as arrived at in

The goal of releasing this code as a plugin is to allow as many people as possible to easily test the post meta revisioning feature, and also hopefully move towards inclusion of the feature into core, following the Features as Plugins model.

Further development of the code for this plugin will continue on its GitHub repository. Pull requests welcome!

To use this plugin, you must be running WordPress 4.1 or newer, two hooks were added in 4.1 that are required for this implementation.

To revision a post meta, you add its key via a filter:

function add_meta_keys_to_revision( $keys ) {
    $keys[] = 'meta-key-to-revision';
    return $keys;
add_filter( 'wp_post_revision_meta_keys', 'add_meta_keys_to_revision' );


  • Allows for a whitelisted array of ‘revisioned’ meta keys (which can change at any time)
  • A revision for the meta is stored on save (if the meta value has changed)
  • A meta revision save (if changed) is also triggered during auto-saves
  • Restoring a revision restores the revisioned meta field’s values at that revision (including auto-saves)
  • Supports storing of multiple values for a single key (and restoring them)
  • Adds revisioned meta to the preview data via get_post_metadata
  • Includes unit tests demonstrating feature
  • Travis CI tests integrated with GitHub repository, props @mattheu



September 3, 2016
DUDE! Why did I never think of this before? This is an awesome idea! I haven’t even installed the plugin and you are getting five stars straight off the bat for solving a problem I didn’t even know I had. Thanks 🙂
Read all 5 reviews

Contributors & Developers

“WP-Post-Meta-Revisions” is open source software. The following people have contributed to this plugin.




  • Post meta storage mechanism simplified to use copy approach. This change updates the way meta is stored on the revision to mirror the meta on the post it is created from. props @aaemnnosttv, see
    NOTE: This is a breaking change – restoring revisions saved in the previous format may result in the array of values restored as a single value rather than adding a value for each item in the array. The storage of single meta values is unaffected.


Tagging release as 1.0.


  • Simplify by no longer storing whitelist per revision.


  • Initial release.