Ticket #13394: wordpress.php.diff

File wordpress.php.diff, 1.5 KB (added by gosunatxrea, 3 years ago)
Line 
1--- wp-admin/import/wordpress.php.orig  Fri May 14 23:31:46 2010
2+++ wp-admin/import/wordpress.php       Fri May 14 23:39:18 2010
3@@ -534,6 +534,45 @@
4                                wp_set_post_categories($post_id, $post_cats);
5                        }
6 
7+                       // Add custom taxonomies.
8+                       $taxs= get_object_taxonomies('post');
9+                       foreach($taxs as $ta) {
10+                               if(($ta == 'post_tag') || ($ta == 'category')) continue;
11+       
12+                               $patt = '|<category domain="'. $ta.'" nicename="[^"]+">(.*?)</category>|is';
13+                               preg_match_all("'".$patt."'", $post, $tags2);
14+                               $tags2 = $tags2[1];
15+                               
16+                               $tag_index2 = 0;
17+                               foreach ($tags2 as $tag2) {
18+                                       $tags2[$tag_index2] = $wpdb->escape( html_entity_decode( str_replace(array( '<![CDATA[', ']]>' ), '', $tag2 ) ) );
19+                                       $tag_index2++;
20+                               }
21+                               
22+                               if (count($tags2) > 0) {
23+                                       $post_tags = array();
24+                                       foreach ($tags2 as $tag) {
25+                                               if ( '' == $tag )
26+                                                       continue;
27+                                               $slug = sanitize_term_field('slug', $tag, 0, $ta, 'db');
28+                                               $tag_obj = get_term_by('slug', $slug, $ta);
29+                                               $tag_id = 0;
30+                                               if ( ! empty($tag_obj) )
31+                                                       $tag_id = $tag_obj->term_id;
32+                                               if ( $tag_id == 0 ) {
33+                                                       $tag = $wpdb->escape($tag);
34+                                                       $tag_id = wp_insert_term($tag, $ta);
35+                                                       if ( is_wp_error($tag_id) )
36+                                                               continue;
37+                                                       $tag_id = $tag_id['term_id'];
38+                                               }
39+                                               $post_tags[] = intval($tag_id);
40+                                       }
41+                                       wp_set_post_terms($post_id, $post_tags, $ta, true);
42+                               }
43+                       }
44+                       
45+
46                        // Add tags.
47                        if (count($tags) > 0) {
48                                $post_tags = array();