WordPress.org

Make WordPress Core

Ticket #13130: 13130.diff

File 13130.diff, 3.9 KB (added by blepoxp, 8 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() {