Make WordPress Core

Opened 2 weeks ago

Last modified 2 weeks ago

#44540 assigned defect (bug)

Revision restoring redirect issue when using custom wp_query inside shortcodes

Reported by: vendetta90 Owned by:
Milestone: Awaiting Review Priority: normal
Severity: normal Version: 4.9.7
Component: Revisions Keywords:
Focuses: Cc:


Using a custom WP_Query inside page content shortcodes leads to weird "revisions restoring" behavior which is redirecting to improper page id. However the page content is restored correctly. Have found this lines 55, 56 in revision.php

wp_restore_post_revision( $revision->ID ); 
$redirect = add_query_arg( array( 'message' => 5, 'revision' => $revision->ID ), get_edit_post_link( $post->ID, 'url' ) )

While wp_restore_post_revision( $revision->ID ) returns a correct post_id, the redirect is made to get_edit_post_link( $post->ID, 'url' ) and $post->ID may be broken by custom wp_query loop. Why not using wp_restore_post_revision( $revision->ID ) returned result to perform a correct redirect?

Change History (1)

#1 @vendetta90
2 weeks ago

Fixed that using

add_action( 'wp_restore_post_revision', 'fix_revisions', 10, 2 );

function fix_revisions( $post_id, $revision ) {
        global $post;
        $post->ID = $post_id;
Note: See TracTickets for help on using tickets.