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, 17 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>