WordPress.org

Make WordPress Core

Ticket #3840: import.php.diff

File import.php.diff, 1.8 KB (added by technosailor, 7 years ago)

Reupped. Diff on wrong file

  • Users/aaron/Sites/trunk/wp-admin/import/wordpress.php

     
    212212        function process_posts() { 
    213213                global $wpdb; 
    214214                $i = -1; 
     215                $id_lookup = array(); 
    215216                echo '<ol>'; 
    216217                foreach ($this->posts as $post) { 
    217218 
     
    258259                                        wp_create_categories($categories, $post_id); 
    259260                                } 
    260261                        } 
    261  
     262                                // Old Post IDs -> New Post IDs 
     263                                $id_lookup[$this->get_tag($post, 'wp:post_id')] = $post_id; 
     264                                 
    262265                                // Now for comments 
    263266                                preg_match_all('|<wp:comment>(.*?)</wp:comment>|is', $post, $comments); 
    264267                                $comments = $comments[1]; 
     
    297300                } 
    298301 
    299302                echo '</ol>'; 
     303                 
     304                // Run through and massage post_parents 
     305                foreach($this->posts as $old_post) //foreach($parent_lookup as $post_parent => $post_id) 
     306                { 
     307                        $old_post_parent = $this->get_tag( $old_post, 'wp:post_parent' ); 
     308                        $old_post_id = $this->get_tag( $old_post, 'wp:post_id' ); 
     309                         
     310                        if( 0 < $old_post_parent ) 
     311                        { 
     312                                // If we can find the original parent id and match it up, let's do it. Otherwise set to 0 so we don't lose the page on the manage screen 
     313                                if ( in_array($old_post_parent, $id_lookup ) ) 
     314                                        wp_update_post( array('ID' => $id_lookup[$old_post_id], 'post_parent' => $id_lookup[$old_post_parent]) );        
     315                                else  
     316                                        wp_update_post( array('ID' => $id_lookup[$old_post_id], '0') ); 
     317                        } 
     318                } 
    300319 
    301320                wp_import_cleanup($this->id); 
    302321 
     
    343362 
    344363register_importer('wordpress', 'WordPress', __('Import <strong>posts, comments, custom fields, pages, and categories</strong> from a WordPress export file'), array ($wp_import, 'dispatch')); 
    345364 
    346 ?> 
     365?> 
     366 No newline at end of file