Introduce some actions and filters which aid plugins in revisioning post meta.
* `wp_save_post_revision_post_has_changed` filter which can be used to determine if a post has been changed, and therefore if a revision should be created for a post. * `wp_get_revision_ui_diff` filter which can be used to filter the fields displayed in the post revision diff UI. * `wp_creating_autosave` action which is fired just before an autosave is created. See #20564. Props mattheu, adamsilverstein. Built from https://develop.svn.wordpress.org/trunk@30091 git-svn-id: http://core.svn.wordpress.org/trunk@30091 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
9a16b52018
commit
a866a7192f
|
@ -1541,6 +1541,15 @@ function wp_create_post_autosave( $post_data ) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fires before an autosave is stored.
|
||||
*
|
||||
* @since 4.1.0
|
||||
*
|
||||
* @param array $new_autosave Post array - the autosave that is about to be saved.
|
||||
*/
|
||||
do_action( 'wp_creating_autosave', $new_autosave );
|
||||
|
||||
return wp_update_post( $new_autosave );
|
||||
}
|
||||
|
||||
|
|
|
@ -92,7 +92,18 @@ function wp_get_revision_ui_diff( $post, $compare_from, $compare_to ) {
|
|||
);
|
||||
}
|
||||
}
|
||||
return $return;
|
||||
|
||||
/**
|
||||
* Filter the fields displayed in the post revision diff UI.
|
||||
*
|
||||
* @since 4.1.0
|
||||
*
|
||||
* @param array $return Revision UI fields. Each item is an array of id, name and diff.
|
||||
* @param WP_Post $compare_from The revision post to compare from.
|
||||
* @param WP_Post $compare_to The revision post to compare to.
|
||||
*/
|
||||
return apply_filters( 'wp_get_revision_ui_diff', $return, $compare_from, $compare_to );
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -133,9 +133,26 @@ function wp_save_post_revision( $post_id ) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter whether a post has changed.
|
||||
*
|
||||
* By default a revision is saved only if one of the revisioned fields has changed.
|
||||
* This filter allows for additional checks to determine if there were changes.
|
||||
*
|
||||
* @since 4.1.0
|
||||
*
|
||||
* @param bool $post_has_changed Whether the post has changed.
|
||||
* @param WP_Post $last_revision The the last revision post object.
|
||||
* @param WP_Post $post The post object.
|
||||
*
|
||||
*/
|
||||
$post_has_changed = (bool) apply_filters( 'wp_save_post_revision_post_has_changed', $post_has_changed, $last_revision, $post );
|
||||
|
||||
//don't save revision if post unchanged
|
||||
if( ! $post_has_changed )
|
||||
if( ! $post_has_changed ) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* @global string $wp_version
|
||||
*/
|
||||
$wp_version = '4.1-alpha-30090';
|
||||
$wp_version = '4.1-alpha-30091';
|
||||
|
||||
/**
|
||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||
|
|
Loading…
Reference in New Issue