WordPress.org

Make WordPress Core

Ticket #6393: wp_export_import_links_with_cats_new.patch

File wp_export_import_links_with_cats_new.patch, 4.0 KB (added by jayminkapish, 6 years ago)

export import blogroll with categories, description and targets

  • wp-admin/link-import.php

     
    100100 
    101101                        include_once('link-parse-opml.php'); 
    102102 
     103                        $blogroll_cats = get_terms('link_category', 'get=all'); 
     104                        foreach ($blogroll_cats as $category){ 
     105                                $blogroll_categories[$category->name] = $category->term_id; 
     106                        } 
     107 
    103108                        $link_count = count($names); 
    104109                        for ( $i = 0; $i < $link_count; $i++ ) { 
     110 
     111                                if ( !$cat_id = is_term( $link_categories[$i], 'link_category' ) ) { 
     112                                        $cat_id = wp_insert_term( $link_categories[$i], 'link_category' ); 
     113                                        $cat_id = $cat_id['term_id']; 
     114                                        $blogroll_categories[$link_categories[$i]] = $cat_id; //adding item to an array of link_cateories from database 
     115                                } 
     116                                else { 
     117                                        $cat_id = (int) $blogroll_categories[$link_categories[$i]]; 
     118                                } 
     119 
    105120                                if ('Last' == substr($titles[$i], 0, 4)) 
    106121                                        $titles[$i] = ''; 
    107122                                if ( 'http' == substr($titles[$i], 0, 4) ) 
    108123                                        $titles[$i] = ''; 
    109                                 $link = array( 'link_url' => $urls[$i], 'link_name' => $wpdb->escape($names[$i]), 'link_category' => array($cat_id), 'link_description' => $wpdb->escape($descriptions[$i]), 'link_owner' => $user_ID, 'link_rss' => $feeds[$i]); 
     124                                $link = array( 'link_url' => $urls[$i], 'link_name' => $wpdb->escape($names[$i]), 'link_category' => array($cat_id), 'link_description' => $wpdb->escape($descriptions[$i]), 'link_owner' => $user_ID, 'link_rss' => $feeds[$i], 'link_target' => $targets[$i]); 
    110125                                wp_insert_link($link); 
    111126                                echo sprintf('<p>'.__('Inserted <strong>%s</strong>').'</p>', $names[$i]); 
    112127                        } 
  • wp-admin/link-parse-opml.php

     
    99        'TITLE'       => 'link_name', 
    1010        'TARGET'      => 'link_target', 
    1111        'DESCRIPTION' => 'link_description', 
    12         'XMLURL'      => 'link_rss' 
     12        'XMLURL'      => 'link_rss', 
     13        'CATEGORY'    => 'category' 
    1314); 
    1415 
    1516$map = $opml_map; 
     
    2021 **/ 
    2122function startElement($parser, $tagName, $attrs) { 
    2223        global $updated_timestamp, $all_links, $map; 
    23         global $names, $urls, $targets, $descriptions, $feeds; 
     24        global $names, $urls, $targets, $descriptions, $feeds, $link_categories; 
    2425 
    2526        if ($tagName == 'OUTLINE') { 
    2627                foreach (array_keys($map) as $key) { 
     
    3738                $targets[] = $link_target; 
    3839                $feeds[] = $link_rss; 
    3940                $descriptions[] = $link_description; 
     41                $link_categories[] = $category; 
    4042        } // end if outline 
    4143} 
    4244 
  • wp-links-opml.php

     
    2626if (empty ($link_cat)) 
    2727        $cats = get_categories("type=link&hierarchical=0"); 
    2828else 
    29         $cats = get_categories('type=link&hierarchical=0&include='.$link_cat); 
     29        $cats = array (get_category($link_cat)); 
    3030 
    3131foreach ((array) $cats as $cat) { 
    3232        $catname = apply_filters('link_category', $cat->name); 
    3333 
    34 ?> 
    35 <outline type="category" title="<?php echo attribute_escape($catname); ?>"> 
    36 <?php 
    37  
    3834        $bookmarks = get_bookmarks("category={$cat->term_id}"); 
     35 
    3936        foreach ((array) $bookmarks as $bookmark) { 
    4037                $title = attribute_escape(apply_filters('link_title', $bookmark->link_name)); 
     38                $description = attribute_escape(apply_filters('link_description', $bookmark->link_description)); 
     39                $target = $bookmark->link_target; 
    4140?> 
    42         <outline text="<?php echo $title; ?>" type="link" xmlUrl="<?php echo attribute_escape($bookmark->link_rss); ?>" htmlUrl="<?php echo attribute_escape($bookmark->link_url); ?>" updated="<?php if ('0000-00-00 00:00:00' != $bookmark->link_updated) echo $bookmark->link_updated; ?>" /> 
     41        <outline text="<?php echo $title; ?>" type="link" url="<?php echo attribute_escape($bookmark->link_url); ?>" category="<?php echo $catname; ?>" description="<?php echo $description; ?>" target="<?php echo $target; ?>" /> 
    4342<?php 
    4443 
    4544        } 
    46 ?> 
    47 </outline> 
    48 <?php 
    49  
    5045} 
    5146?> 
    5247</body>