Revisions:

- Store the post format as meta on revisions (including autosaves).
- Add post formats data (post meta) when autosaving.
- Only add non-empty post formats data to revisions.
- Correct the post format when previewing a published post.
Props kovshenin, see #19570, see #20564.


git-svn-id: https://develop.svn.wordpress.org/trunk@23928 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Andrew Ozz
2013-04-06 23:18:52 +00:00
parent 0e3dd60eae
commit 48dc22b9eb
3 changed files with 68 additions and 20 deletions
+16 -7
View File
@@ -1279,15 +1279,24 @@ function wp_create_post_autosave( $post_id ) {
$new_autosave['ID'] = $old_autosave->ID;
$new_autosave['post_author'] = $post_author;
// Auto-save revisioned meta fields too.
// Auto-save revisioned meta fields.
foreach ( _wp_post_revision_meta_keys() as $meta_key ) {
if ( ! isset( $_POST[ $meta_key ] ) )
continue;
if ( isset( $_POST[ $meta_key ] ) && get_post_meta( $new_autosave['ID'], $meta_key, true ) != $_POST[ $meta_key ] ) {
// Use the underlying delete_metadata and add_metadata vs delete_post_meta
// and add_post_meta to make sure we're working with the actual revision meta.
delete_metadata( 'post', $new_autosave['ID'], $meta_key );
// Use the underlying delete_metadata and add_metadata vs delete_post_meta
// and add_post_meta to make sure we're working with the actual revision meta.
delete_metadata( 'post', $new_autosave['ID'], $meta_key );
add_metadata( 'post', $new_autosave['ID'], $meta_key, $_POST[ $meta_key ] );
if ( ! empty( $_POST[ $meta_key ] ) )
add_metadata( 'post', $new_autosave['ID'], $meta_key, $_POST[ $meta_key ] );
}
}
// Save the post format if different
if ( isset( $_POST['post_format'] ) && get_post_meta( $new_autosave['ID'], '_revision_post_format', true ) != $_POST['post_format'] ) {
delete_metadata( 'post', $new_autosave['ID'], '_revision_post_format' );
if ( ! empty( $_POST['post_format'] ) )
add_metadata( 'post', $new_autosave['ID'], '_revision_post_format', $_POST['post_format'] );
}
return wp_update_post( $new_autosave );