WordPress.org

Make WordPress Core

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

File mt-import-tags-basename.patch, 2.4 KB (added by nacin, 8 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';