WordPress.org

Make WordPress Core

Ticket #13130: 13130.diff

File 13130.diff, 3.9 KB (added by blepoxp, 4 years ago)

Adds author email to export / import

  • wp-admin/includes/export.php

     
    2424 * @param unknown_type $author 
    2525 */ 
    2626function export_wp($author='', $category='', $post_type='', $status='', $start_date='', $end_date='') { 
    27 global $wpdb, $post_ids, $post, $wp_taxonomies; 
     27global $wpdb, $post_ids, $post, $wp_taxonomies, $authordata; 
    2828 
    2929do_action('export_wp'); 
    3030 
     
    333333<link><?php the_permalink_rss() ?></link> 
    334334<pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate> 
    335335<dc:creator><?php echo wxr_cdata(get_the_author()); ?></dc:creator> 
     336<dc:creator_email><?php echo wxr_cdata( apply_filters('the_author', is_object($authordata) ? $authordata->user_email : null) ); ?></dc:creator_email> 
    336337<?php wxr_post_taxonomy() ?> 
    337338 
    338339<guid isPermaLink="false"><?php the_guid(); ?></guid> 
  • wp-admin/import/wordpress.php

     
    2323        var $mtnames = array (); 
    2424        var $newauthornames = array (); 
    2525        var $allauthornames = array (); 
     26        var $allauthoremails = array(); 
    2627 
    2728        var $author_ids = array (); 
    2829        var $tags = array (); 
     
    162163 
    163164                return $authors; 
    164165        } 
     166         
     167        function get_wp_author_emails() { 
     168                // We need to find unique values of author emails, while preserving the order, so this function emulates the unique_value(); php function, without the sorting. 
     169                $temp = $this->allauthoremails; 
     170                $emails[0] = array_shift($temp); 
     171                $y = count($temp) + 1; 
     172                for ($x = 1; $x < $y; $x ++) { 
     173                        $next = array_shift($temp); 
     174                        if (!(in_array($next, $emails))) 
     175                                array_push($emails, $next); 
     176                } 
    165177 
     178                return $emails; 
     179        } 
     180 
    166181        function get_authors_from_post() { 
    167182                global $current_user; 
    168183 
     
    184199                                if ( empty($new_author_name) ) 
    185200                                        $new_author_name = $in_author_name; 
    186201 
     202                                $new_author_email = trim($_POST['author_email'][$i]); 
     203                                 
    187204                                $user_id = username_exists($new_author_name); 
    188205                                if ( !$user_id ) { 
    189                                         $user_id = wp_create_user($new_author_name, wp_generate_password()); 
     206                                        $user_id = wp_create_user($new_author_name, wp_generate_password(), $new_author_email ); 
    190207                                } 
    191208 
    192209                                if ( !is_wp_error( $user_id ) ) { 
     
    213230 
    214231 
    215232                $authors = $this->get_wp_authors(); 
     233                $emails = $this->get_wp_author_emails(); 
    216234                echo '<form action="?import=wordpress&amp;step=2&amp;id=' . $this->id . '" method="post">'; 
    217235                wp_nonce_field('import-wordpress'); 
    218236?> 
     
    222240                foreach ($authors as $author) { 
    223241                        ++ $j; 
    224242                        echo '<li>'.__('Import author:').' <strong>'.$author.'</strong><br />'; 
    225                         $this->users_form($j, $author); 
     243                        $this->users_form($j, $author, $emails[$j] ); 
    226244                        echo '</li>'; 
    227245                } 
    228246 
     
    245263 
    246264        } 
    247265 
    248         function users_form($n, $author) { 
     266        function users_form($n, $author, $email) { 
    249267 
    250268                if ( $this->allow_create_users() ) { 
    251269                        printf('<label>'.__('Create user %1$s or map to existing'), ' <input type="text" value="'. esc_attr($author) .'" name="'.'user_create['.intval($n).']'.'" maxlength="30" /></label> <br />'); 
     
    256274 
    257275                // keep track of $n => $author name 
    258276                echo '<input type="hidden" name="author_in['.intval($n).']" value="' . esc_attr($author).'" />'; 
     277                 
     278                // keep track of $n => $author email 
     279                echo '<input type="hidden" name="author_email['.intval($n).']" value="' . esc_attr($email).'" />'; 
    259280 
    260281                $users = get_users_of_blog(); 
    261282?><select name="user_select[<?php echo $n; ?>]"> 
     
    386407 
    387408        function process_author($post) { 
    388409                $author = $this->get_tag( $post, 'dc:creator' ); 
    389                 if ($author) 
     410                $email = $this->get_tag( $post, 'dc:creator_email' ); 
     411                if ($author){ 
    390412                        $this->allauthornames[] = $author; 
     413                        $this->allauthoremails[] = $email; 
     414                } 
    391415        } 
    392416 
    393417        function process_posts() {