WordPress.org

Make WordPress Core

Changeset 6129


Ignore:
Timestamp:
09/18/2007 05:50:21 PM (11 years ago)
Author:
ryan
Message:

Import tags. see #4682

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/import/wordpress.php

    r6125 r6129  
    8989        $this->posts = array();
    9090        $this->categories = array();
     91        $this->tags = array();
    9192        $num = 0;
    9293        $doing_entry = false;
     
    100101                    preg_match('|<wp:category>(.*?)</wp:category>|is', $importline, $category);
    101102                    $this->categories[] = $category[1];
     103                    continue;
     104                }
     105                if ( false !== strpos($importline, '<wp:tag>') ) {
     106                    preg_match('|<wp:tag>(.*?)</wp:tag>|is', $importline, $tag);
     107                    $this->tags[] = $tag[1];
    102108                    continue;
    103109                }
     
    244250
    245251            $cat_ID = wp_insert_category($catarr);
     252        }
     253    }
     254
     255    function process_tags() {
     256        global $wpdb;
     257
     258        $tag_names = (array) get_terms('post_tag', 'fields=names');
     259
     260        while ( $c = array_shift($this->tags) ) {
     261            $tag_name = trim($this->get_tag( $c, 'wp:tag_name' ));
     262
     263            // If the category exists we leave it alone
     264            if ( in_array($tag_name, $tag_names) )
     265                continue;
     266
     267            $slug = $this->get_tag( $c, 'wp:tag_slug' );
     268            $description = $this->get_tag( $c, 'wp:tag_description' );
     269
     270            $tagarr = compact('slug', 'description');
     271
     272            $tag_ID = wp_insert_term($tag_name, 'post_tag', $tagarr);
    246273        }
    247274    }
     
    392419        $this->get_entries();
    393420        $this->process_categories();
     421        $this->process_tags();
    394422        $result = $this->process_posts();
    395423        if ( is_wp_error( $result ) )
Note: See TracChangeset for help on using the changeset viewer.