WordPress.org

Make WordPress Core

Ticket #12578: mt-import-tags-basename.patch

File mt-import-tags-basename.patch, 2.4 KB (added by nacin, 4 years ago)

Patch from stevecrozz with .patch extension.

  • wp-admin/import/mt.php

     
    239239                $this->mt_authors_form(); 
    240240        } 
    241241 
    242         function save_post(&$post, &$comments, &$pings) { 
     242        function save_post(&$post, &$comments, &$pings, &$tags) { 
    243243                // Reset the counter 
    244244                set_time_limit(30); 
    245245                $post = get_object_vars($post); 
     
    274274                        } 
    275275                } 
    276276 
     277                if ( $tags != '' ) { 
     278                        wp_set_post_tags( $post_id, $tags ); 
     279                } 
     280 
    277281                $num_comments = 0; 
    278282                foreach ( $comments as $comment ) { 
    279283                        $comment = get_object_vars($comment); 
     
    324328                $comments = array(); 
    325329                $ping = new StdClass(); 
    326330                $pings = array(); 
     331                $tags = ''; 
    327332 
    328333                echo "<div class='wrap'><ol>"; 
    329334 
     
    343348                        } else if ( '--------' == $line ) { 
    344349                                // Finishing a post. 
    345350                                $context = ''; 
    346                                 $result = $this->save_post($post, $comments, $pings); 
     351                                $result = $this->save_post($post, $comments, $pings, $tags); 
    347352                                if ( is_wp_error( $result ) ) 
    348353                                        return $result; 
    349354                                $post = new StdClass; 
     
    351356                                $ping = new StdClass(); 
    352357                                $comments = array(); 
    353358                                $pings = array(); 
     359                                $tags = ''; 
    354360                        } else if ( 'BODY:' == $line ) { 
    355361                                $context = 'body'; 
    356362                        } else if ( 'EXTENDED BODY:' == $line ) { 
     
    375381                                        $post->post_title = $title; 
    376382                                else if ( 'ping' == $context ) 
    377383                                        $ping->title = $title; 
    378                         } else if ( 0 === strpos($line, "STATUS:") ) { 
     384                        } else if ( 0 === strpos($line, "BASENAME:") ) { 
     385                                $basename = trim( strtolower( substr($line, strlen("BASENAME:")) ) ); 
     386                                if ( '' == $context ) 
     387                                        $post->post_name = $basename; 
     388                        } else if ( 0 === strpos($line, "TAGS:") ) { 
     389                                # Does not properly handle tags containing a comma 
     390                                $tags = trim( strtolower( substr($line, strlen("TAGS:")) ) ); 
     391                                $tags = preg_replace('/^"|"$/', '', $tags); 
     392                                $tags = preg_replace('/(?:",")|(?:,")|(?:",)/', ',', $tags); 
     393                        } else if ( 0 === strpos($line, "STATUS:") ) { 
    379394                                $status = trim( strtolower( substr($line, strlen("STATUS:")) ) ); 
    380395                                if ( empty($status) ) 
    381396                                        $status = 'publish';