WordPress.org

Make WordPress Core

Ticket #3757: 3757b.diff

File 3757b.diff, 2.3 KB (added by mdawaffe, 7 years ago)
  • wp-admin/admin-functions.php

     
    2222 
    2323 
    2424        // Check for autosave collisions 
     25        $temp_id = false; 
    2526        if ( isset($_POST['temp_ID']) ) { 
    2627                $temp_id = (int) $_POST['temp_ID']; 
    2728                if ( !$draft_ids = get_user_option( 'autosave_draft_ids' ) ) 
     
    3334                if ( isset($draft_ids[$temp_id]) ) { // Edit, don't write 
    3435                        $_POST['post_ID'] = $draft_ids[$temp_id]; 
    3536                        unset($_POST['temp_ID']); 
    36                         relocate_children( $temp_id, $_POST['post_ID'] ); 
    3737                        update_user_option( $user_ID, 'autosave_draft_ids', $draft_ids ); 
    3838                        return edit_post(); 
    3939                } 
     
    112112        add_meta( $post_ID ); 
    113113 
    114114        // Reunite any orphaned attachments with their parent 
     115        if ( !$draft_ids = get_user_option( 'autosave_draft_ids' ) ) 
     116                $draft_ids = array(); 
     117        if ( $draft_temp_id = array_search( $post_ID, $draft_ids ) ) 
     118                relocate_children( $draft_temp_id, $post_ID ); 
     119        if ( $temp_id && $temp_id != $draft_temp_id ) 
     120                relocate_children( $temp_id, $post_ID ); 
     121 
    115122        // Update autosave collision detection 
    116123        if ( $temp_id ) { 
    117                 relocate_children( $temp_id, $post_ID ); 
    118124                $draft_ids[$temp_id] = $post_ID; 
    119125                update_user_option( $user_ID, 'autosave_draft_ids', $draft_ids ); 
    120126        } 
     
    139145 
    140146        $post = & get_post( $post_ID, ARRAY_A ); 
    141147 
    142         $search = "#<a[^>]+rel=('|\" )[^'\"]*attachment[^>]*>#ie"; 
     148        $search = "#<a[^>]+rel=('|\")[^'\"]*attachment[^>]*>#ie"; 
    143149 
    144150        // See if we have any rel="attachment" links 
    145151        if ( 0 == preg_match_all( $search, $post['post_content'], $anchor_matches, PREG_PATTERN_ORDER ) ) 
    146152                return; 
    147153 
    148154        $i = 0; 
    149         $search = "#[\s]+rel=(\"|' )(.*? )wp-att-(\d+ )\\1#i"; 
     155        $search = "#[\s]+rel=(\"|')(.*?)wp-att-(\d+)\\1#i"; 
    150156        foreach ( $anchor_matches[0] as $anchor ) { 
    151157                if ( 0 == preg_match( $search, $anchor, $id_matches ) ) 
    152158                        continue; 
     
    279285 
    280286        add_meta( $post_ID ); 
    281287 
    282         wp_update_post( $_POST); 
     288        wp_update_post( $_POST ); 
    283289 
     290        // Reunite any orphaned attachments with their parent 
     291        if ( !$draft_ids = get_user_option( 'autosave_draft_ids' ) ) 
     292                $draft_ids = array(); 
     293        if ( $draft_temp_id = array_search( $post_ID, $draft_ids ) ) 
     294                relocate_children( $draft_temp_id, $post_ID ); 
     295 
    284296        // Now that we have an ID we can fix any attachment anchor hrefs 
    285297        fix_attachment_links( $post_ID ); 
    286298