web/wp-admin/import/wp-cat2tag.php
changeset 1 0d28b7c10758
equal deleted inserted replaced
0:0d9a58d2c515 1:0d28b7c10758
       
     1 <?php
       
     2 /**
       
     3  * WordPress Categories to Tags Converter.
       
     4  *
       
     5  * @package WordPress
       
     6  * @subpackage Importer
       
     7  */
       
     8 
       
     9 /**
       
    10  * WordPress categories to tags converter class.
       
    11  *
       
    12  * Will convert WordPress categories to tags, removing the category after the
       
    13  * process is complete and updating all posts to switch to the tag.
       
    14  *
       
    15  * @since unknown
       
    16  */
       
    17 class WP_Categories_to_Tags {
       
    18 	var $categories_to_convert = array();
       
    19 	var $all_categories = array();
       
    20 	var $tags_to_convert = array();
       
    21 	var $all_tags = array();
       
    22 	var $hybrids_ids = array();
       
    23 
       
    24 	function header() {
       
    25 		echo '<div class="wrap">';
       
    26 		if ( ! current_user_can('manage_categories') ) {
       
    27 			echo '<div class="narrow">';
       
    28 			echo '<p>' . __('Cheatin&#8217; uh?') . '</p>';
       
    29 			echo '</div>';
       
    30 		} else { ?>
       
    31 			<div class="tablenav"><p style="margin:4px"><a style="display:inline;" class="button-secondary" href="admin.php?import=wp-cat2tag"><?php _e( "Categories to Tags" ); ?></a>
       
    32 			<a style="display:inline;" class="button-secondary" href="admin.php?import=wp-cat2tag&amp;step=3"><?php _e( "Tags to Categories" ); ?></a></p></div>
       
    33 <?php	}
       
    34 	}
       
    35 
       
    36 	function footer() {
       
    37 		echo '</div>';
       
    38 	}
       
    39 
       
    40 	function populate_cats() {
       
    41 
       
    42 		$categories = get_categories('get=all');
       
    43 		foreach ( $categories as $category ) {
       
    44 			$this->all_categories[] = $category;
       
    45 			if ( is_term( $category->slug, 'post_tag' ) )
       
    46 				$this->hybrids_ids[] = $category->term_id;
       
    47 		}
       
    48 	}
       
    49 
       
    50 	function populate_tags() {
       
    51 
       
    52 		$tags = get_terms( array('post_tag'), 'get=all' );
       
    53 		foreach ( $tags as $tag ) {
       
    54 			$this->all_tags[] = $tag;
       
    55 			if ( is_term( $tag->slug, 'category' ) )
       
    56 				$this->hybrids_ids[] = $tag->term_id;
       
    57 		}
       
    58 	}
       
    59 
       
    60 	function categories_tab() {
       
    61 		$this->populate_cats();
       
    62 		$cat_num = count($this->all_categories);
       
    63 
       
    64 		echo '<br class="clear" />';
       
    65 
       
    66 		if ( $cat_num > 0 ) {
       
    67 			screen_icon();
       
    68 			echo '<h2>' . sprintf( _n( 'Convert Category to Tag.', 'Convert Categories (%d) to Tags.', $cat_num ), $cat_num ) . '</h2>';
       
    69 			echo '<div class="narrow">';
       
    70 			echo '<p>' . __('Hey there. Here you can selectively convert existing categories to tags. To get started, check the categories you wish to be converted, then click the Convert button.') . '</p>';
       
    71 			echo '<p>' . __('Keep in mind that if you convert a category with child categories, the children become top-level orphans.') . '</p></div>';
       
    72 
       
    73 			$this->categories_form();
       
    74 		} else {
       
    75 			echo '<p>'.__('You have no categories to convert!').'</p>';
       
    76 		}
       
    77 	}
       
    78 
       
    79 	function categories_form() { ?>
       
    80 
       
    81 <script type="text/javascript">
       
    82 /* <![CDATA[ */
       
    83 var checkflag = "false";
       
    84 function check_all_rows() {
       
    85 	field = document.catlist;
       
    86 	if ( 'false' == checkflag ) {
       
    87 		for ( i = 0; i < field.length; i++ ) {
       
    88 			if ( 'cats_to_convert[]' == field[i].name )
       
    89 				field[i].checked = true;
       
    90 		}
       
    91 		checkflag = 'true';
       
    92 		return '<?php _e('Uncheck All') ?>';
       
    93 	} else {
       
    94 		for ( i = 0; i < field.length; i++ ) {
       
    95 			if ( 'cats_to_convert[]' == field[i].name )
       
    96 				field[i].checked = false;
       
    97 		}
       
    98 		checkflag = 'false';
       
    99 		return '<?php _e('Check All') ?>';
       
   100 	}
       
   101 }
       
   102 /* ]]> */
       
   103 </script>
       
   104 
       
   105 <form name="catlist" id="catlist" action="admin.php?import=wp-cat2tag&amp;step=2" method="post">
       
   106 <p><input type="button" class="button-secondary" value="<?php esc_attr_e('Check All'); ?>" onclick="this.value=check_all_rows()" />
       
   107 <?php wp_nonce_field('import-cat2tag'); ?></p>
       
   108 <ul style="list-style:none">
       
   109 
       
   110 <?php	$hier = _get_term_hierarchy('category');
       
   111 
       
   112 		foreach ($this->all_categories as $category) {
       
   113 			$category = sanitize_term( $category, 'category', 'display' );
       
   114 
       
   115 			if ( (int) $category->parent == 0 ) { ?>
       
   116 
       
   117 	<li><label><input type="checkbox" name="cats_to_convert[]" value="<?php echo intval($category->term_id); ?>" /> <?php echo $category->name . ' (' . $category->count . ')'; ?></label><?php
       
   118 
       
   119 				 if ( in_array( intval($category->term_id),  $this->hybrids_ids ) )
       
   120 				 	echo ' <a href="#note"> * </a>';
       
   121 
       
   122 				if ( isset($hier[$category->term_id]) )
       
   123 					$this->_category_children($category, $hier); ?></li>
       
   124 <?php		}
       
   125 		} ?>
       
   126 </ul>
       
   127 
       
   128 <?php	if ( ! empty($this->hybrids_ids) )
       
   129 			echo '<p><a name="note"></a>' . __('* This category is also a tag. Converting it will add that tag to all posts that are currently in the category.') . '</p>'; ?>
       
   130 
       
   131 <p class="submit"><input type="submit" name="submit" class="button" value="<?php esc_attr_e('Convert Categories to Tags'); ?>" /></p>
       
   132 </form>
       
   133 
       
   134 <?php }
       
   135 
       
   136 	function tags_tab() {
       
   137 		$this->populate_tags();
       
   138 		$tags_num = count($this->all_tags);
       
   139 
       
   140 		echo '<br class="clear" />';
       
   141 
       
   142 		if ( $tags_num > 0 ) {
       
   143 			screen_icon();
       
   144 			echo '<h2>' . sprintf( _n( 'Convert Tag to Category.', 'Convert Tags (%d) to Categories.', $tags_num ), $tags_num ) . '</h2>';
       
   145 			echo '<div class="narrow">';
       
   146 			echo '<p>' . __('Here you can selectively convert existing tags to categories. To get started, check the tags you wish to be converted, then click the Convert button.') . '</p>';
       
   147 			echo '<p>' . __('The newly created categories will still be associated with the same posts.') . '</p></div>';
       
   148 
       
   149 			$this->tags_form();
       
   150 		} else {
       
   151 			echo '<p>'.__('You have no tags to convert!').'</p>';
       
   152 		}
       
   153 	}
       
   154 
       
   155 	function tags_form() { ?>
       
   156 
       
   157 <script type="text/javascript">
       
   158 /* <![CDATA[ */
       
   159 var checktags = "false";
       
   160 function check_all_tagrows() {
       
   161 	field = document.taglist;
       
   162 	if ( 'false' == checktags ) {
       
   163 		for ( i = 0; i < field.length; i++ ) {
       
   164 			if ( 'tags_to_convert[]' == field[i].name )
       
   165 				field[i].checked = true;
       
   166 		}
       
   167 		checktags = 'true';
       
   168 		return '<?php _e('Uncheck All') ?>';
       
   169 	} else {
       
   170 		for ( i = 0; i < field.length; i++ ) {
       
   171 			if ( 'tags_to_convert[]' == field[i].name )
       
   172 				field[i].checked = false;
       
   173 		}
       
   174 		checktags = 'false';
       
   175 		return '<?php _e('Check All') ?>';
       
   176 	}
       
   177 }
       
   178 /* ]]> */
       
   179 </script>
       
   180 
       
   181 <form name="taglist" id="taglist" action="admin.php?import=wp-cat2tag&amp;step=4" method="post">
       
   182 <p><input type="button" class="button-secondary" value="<?php esc_attr_e('Check All'); ?>" onclick="this.value=check_all_tagrows()" />
       
   183 <?php wp_nonce_field('import-cat2tag'); ?></p>
       
   184 <ul style="list-style:none">
       
   185 
       
   186 <?php	foreach ( $this->all_tags as $tag ) { ?>
       
   187 	<li><label><input type="checkbox" name="tags_to_convert[]" value="<?php echo intval($tag->term_id); ?>" /> <?php echo esc_attr($tag->name) . ' (' . $tag->count . ')'; ?></label><?php if ( in_array( intval($tag->term_id),  $this->hybrids_ids ) ) echo ' <a href="#note"> * </a>'; ?></li>
       
   188 
       
   189 <?php	} ?>
       
   190 </ul>
       
   191 
       
   192 <?php	if ( ! empty($this->hybrids_ids) )
       
   193 			echo '<p><a name="note"></a>' . __('* This tag is also a category. When converted, all posts associated with the tag will also be in the category.') . '</p>'; ?>
       
   194 
       
   195 <p class="submit"><input type="submit" name="submit_tags" class="button" value="<?php esc_attr_e('Convert Tags to Categories'); ?>" /></p>
       
   196 </form>
       
   197 
       
   198 <?php }
       
   199 
       
   200 	function _category_children($parent, $hier) { ?>
       
   201 
       
   202 		<ul style="list-style:none">
       
   203 <?php	foreach ($hier[$parent->term_id] as $child_id) {
       
   204 			$child =& get_category($child_id); ?>
       
   205 		<li><label><input type="checkbox" name="cats_to_convert[]" value="<?php echo intval($child->term_id); ?>" /> <?php echo $child->name . ' (' . $child->count . ')'; ?></label><?php
       
   206 
       
   207 			if ( in_array( intval($child->term_id), $this->hybrids_ids ) )
       
   208 				echo ' <a href="#note"> * </a>';
       
   209 
       
   210 			if ( isset($hier[$child->term_id]) )
       
   211 				$this->_category_children($child, $hier); ?></li>
       
   212 <?php	} ?>
       
   213 		</ul><?php
       
   214 	}
       
   215 
       
   216 	function _category_exists($cat_id) {
       
   217 		$cat_id = (int) $cat_id;
       
   218 
       
   219 		$maybe_exists = category_exists($cat_id);
       
   220 
       
   221 		if ( $maybe_exists ) {
       
   222 			return true;
       
   223 		} else {
       
   224 			return false;
       
   225 		}
       
   226 	}
       
   227 
       
   228 	function convert_categories() {
       
   229 		global $wpdb;
       
   230 
       
   231 		if ( (!isset($_POST['cats_to_convert']) || !is_array($_POST['cats_to_convert'])) && empty($this->categories_to_convert)) { ?>
       
   232 			<div class="narrow">
       
   233 			<p><?php printf(__('Uh, oh. Something didn&#8217;t work. Please <a href="%s">try again</a>.'), 'admin.php?import=wp-cat2tag'); ?></p>
       
   234 			</div>
       
   235 <?php		return;
       
   236 		}
       
   237 
       
   238 		if ( empty($this->categories_to_convert) )
       
   239 			$this->categories_to_convert = $_POST['cats_to_convert'];
       
   240 
       
   241 		$hier = _get_term_hierarchy('category');
       
   242 		$hybrid_cats = $clear_parents = $parents = false;
       
   243 		$clean_term_cache = $clean_cat_cache = array();
       
   244 		$default_cat = get_option('default_category');
       
   245 
       
   246 		echo '<ul>';
       
   247 
       
   248 		foreach ( (array) $this->categories_to_convert as $cat_id) {
       
   249 			$cat_id = (int) $cat_id;
       
   250 
       
   251 			if ( ! $this->_category_exists($cat_id) ) {
       
   252 				echo '<li>' . sprintf( __('Category %s doesn&#8217;t exist!'),  $cat_id ) . "</li>\n";
       
   253 			} else {
       
   254 				$category =& get_category($cat_id);
       
   255 				echo '<li>' . sprintf(__('Converting category <strong>%s</strong> ... '),  $category->name);
       
   256 
       
   257 				// If the category is the default, leave category in place and create tag.
       
   258 				if ( $default_cat == $category->term_id ) {
       
   259 
       
   260 					if ( ! ($id = is_term( $category->slug, 'post_tag' ) ) )
       
   261 						$id = wp_insert_term($category->name, 'post_tag', array('slug' => $category->slug));
       
   262 
       
   263 					$id = $id['term_taxonomy_id'];
       
   264 					$posts = get_objects_in_term($category->term_id, 'category');
       
   265 					$term_order = 0;
       
   266 
       
   267 					foreach ( $posts as $post ) {
       
   268 						$values[] = $wpdb->prepare( "(%d, %d, %d)", $post, $id, $term_order);
       
   269 						clean_post_cache($post);
       
   270 					}
       
   271 
       
   272 					if ( $values ) {
       
   273 						$wpdb->query("INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id, term_order) VALUES " . join(',', $values) . " ON DUPLICATE KEY UPDATE term_order = VALUES(term_order)");
       
   274 
       
   275 						$wpdb->query( $wpdb->prepare("UPDATE $wpdb->term_taxonomy SET count = %d WHERE term_id = %d AND taxonomy = 'post_tag'", $category->count, $category->term_id) );
       
   276 					}
       
   277 
       
   278 					echo __('Converted successfully.') . "</li>\n";
       
   279 					continue;
       
   280 				}
       
   281 
       
   282 				// if tag already exists, add it to all posts in the category
       
   283 				if ( $tag_ttid = $wpdb->get_var( $wpdb->prepare("SELECT term_taxonomy_id FROM $wpdb->term_taxonomy WHERE term_id = %d AND taxonomy = 'post_tag'", $category->term_id) ) ) {
       
   284 					$objects_ids = get_objects_in_term($category->term_id, 'category');
       
   285 					$tag_ttid = (int) $tag_ttid;
       
   286 					$term_order = 0;
       
   287 
       
   288 					foreach ( $objects_ids as $object_id )
       
   289 						$values[] = $wpdb->prepare( "(%d, %d, %d)", $object_id, $tag_ttid, $term_order);
       
   290 
       
   291 					if ( $values ) {
       
   292 						$wpdb->query("INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id, term_order) VALUES " . join(',', $values) . " ON DUPLICATE KEY UPDATE term_order = VALUES(term_order)");
       
   293 
       
   294 						$count = $wpdb->get_var( $wpdb->prepare("SELECT COUNT(*) FROM $wpdb->term_relationships WHERE term_taxonomy_id = %d", $tag_ttid) );
       
   295 						$wpdb->query( $wpdb->prepare("UPDATE $wpdb->term_taxonomy SET count = %d WHERE term_id = %d AND taxonomy = 'post_tag'", $count, $category->term_id) );
       
   296 					}
       
   297 					echo __('Tag added to all posts in this category.') . " *</li>\n";
       
   298 
       
   299 					$hybrid_cats = true;
       
   300 					$clean_term_cache[] = $category->term_id;
       
   301 					$clean_cat_cache[] = $category->term_id;
       
   302 
       
   303 					continue;
       
   304 				}
       
   305 
       
   306 				$tt_ids = $wpdb->get_col( $wpdb->prepare("SELECT term_taxonomy_id FROM $wpdb->term_taxonomy WHERE term_id = %d AND taxonomy = 'category'", $category->term_id) );
       
   307 				if ( $tt_ids ) {
       
   308 					$posts = $wpdb->get_col("SELECT object_id FROM $wpdb->term_relationships WHERE term_taxonomy_id IN (" . join(',', $tt_ids) . ") GROUP BY object_id");
       
   309 					foreach ( (array) $posts as $post )
       
   310 						clean_post_cache($post);
       
   311 				}
       
   312 
       
   313 				// Change the category to a tag.
       
   314 				$wpdb->query( $wpdb->prepare("UPDATE $wpdb->term_taxonomy SET taxonomy = 'post_tag' WHERE term_id = %d AND taxonomy = 'category'", $category->term_id) );
       
   315 
       
   316 				// Set all parents to 0 (root-level) if their parent was the converted tag
       
   317 				$parents = $wpdb->query( $wpdb->prepare("UPDATE $wpdb->term_taxonomy SET parent = 0 WHERE parent = %d AND taxonomy = 'category'", $category->term_id) );
       
   318 
       
   319 				if ( $parents ) $clear_parents = true;
       
   320 				$clean_cat_cache[] = $category->term_id;
       
   321 				echo __('Converted successfully.') . "</li>\n";
       
   322 			}
       
   323 		}
       
   324 		echo '</ul>';
       
   325 
       
   326 		if ( ! empty($clean_term_cache) ) {
       
   327 			$clean_term_cache = array_unique(array_values($clean_term_cache));
       
   328 			clean_term_cache($clean_term_cache, 'post_tag');
       
   329 		}
       
   330 
       
   331 		if ( ! empty($clean_cat_cache) ) {
       
   332 			$clean_cat_cache = array_unique(array_values($clean_cat_cache));
       
   333 			clean_term_cache($clean_cat_cache, 'category');
       
   334 		}
       
   335 
       
   336 		if ( $clear_parents ) delete_option('category_children');
       
   337 
       
   338 		if ( $hybrid_cats )
       
   339 			echo '<p>' . sprintf( __('* This category is also a tag. The converter has added that tag to all posts currently in the category. If you want to remove it, please confirm that all tags were added successfully, then delete it from the <a href="%s">Manage Categories</a> page.'), 'categories.php') . '</p>';
       
   340 		echo '<p>' . sprintf( __('We&#8217;re all done here, but you can always <a href="%s">convert more</a>.'), 'admin.php?import=wp-cat2tag' ) . '</p>';
       
   341 	}
       
   342 
       
   343 	function convert_tags() {
       
   344 		global $wpdb;
       
   345 
       
   346 		if ( (!isset($_POST['tags_to_convert']) || !is_array($_POST['tags_to_convert'])) && empty($this->tags_to_convert)) {
       
   347 			echo '<div class="narrow">';
       
   348 			echo '<p>' . sprintf(__('Uh, oh. Something didn&#8217;t work. Please <a href="%s">try again</a>.'), 'admin.php?import=wp-cat2tag&amp;step=3') . '</p>';
       
   349 			echo '</div>';
       
   350 			return;
       
   351 		}
       
   352 
       
   353 		if ( empty($this->tags_to_convert) )
       
   354 			$this->tags_to_convert = $_POST['tags_to_convert'];
       
   355 
       
   356 		$hybrid_tags = $clear_parents = false;
       
   357 		$clean_cat_cache = $clean_term_cache = array();
       
   358 		$default_cat = get_option('default_category');
       
   359 		echo '<ul>';
       
   360 
       
   361 		foreach ( (array) $this->tags_to_convert as $tag_id) {
       
   362 			$tag_id = (int) $tag_id;
       
   363 
       
   364 			if ( $tag = get_term( $tag_id, 'post_tag' ) ) {
       
   365 				printf('<li>' . __('Converting tag <strong>%s</strong> ... '),  $tag->name);
       
   366 
       
   367 				if ( $cat_ttid = $wpdb->get_var( $wpdb->prepare("SELECT term_taxonomy_id FROM $wpdb->term_taxonomy WHERE term_id = %d AND taxonomy = 'category'", $tag->term_id) ) ) {
       
   368 					$objects_ids = get_objects_in_term($tag->term_id, 'post_tag');
       
   369 					$cat_ttid = (int) $cat_ttid;
       
   370 					$term_order = 0;
       
   371 
       
   372 					foreach ( $objects_ids as $object_id ) {
       
   373 						$values[] = $wpdb->prepare( "(%d, %d, %d)", $object_id, $cat_ttid, $term_order);
       
   374 						clean_post_cache($object_id);
       
   375 					}
       
   376 
       
   377 					if ( $values ) {
       
   378 						$wpdb->query("INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id, term_order) VALUES " . join(',', $values) . " ON DUPLICATE KEY UPDATE term_order = VALUES(term_order)");
       
   379 
       
   380 						if ( $default_cat != $tag->term_id ) {
       
   381 							$count = $wpdb->get_var( $wpdb->prepare("SELECT COUNT(*) FROM $wpdb->term_relationships WHERE term_taxonomy_id = %d", $tag->term_id) );
       
   382 							$wpdb->query( $wpdb->prepare("UPDATE $wpdb->term_taxonomy SET count = %d WHERE term_id = %d AND taxonomy = 'category'", $count, $tag->term_id) );
       
   383 						}
       
   384 					}
       
   385 
       
   386 					$hybrid_tags = true;
       
   387 					$clean_term_cache[] = $tag->term_id;
       
   388 					$clean_cat_cache[] = $tag->term_id;
       
   389 					echo __('All posts were added to the category with the same name.') . " *</li>\n";
       
   390 
       
   391 					continue;
       
   392 				}
       
   393 
       
   394 				// Change the tag to a category.
       
   395 				$parent = $wpdb->get_var( $wpdb->prepare("SELECT parent FROM $wpdb->term_taxonomy WHERE term_id = %d AND taxonomy = 'post_tag'", $tag->term_id) );
       
   396 				if ( 0 == $parent || (0 < (int) $parent && $this->_category_exists($parent)) ) {
       
   397 					$reset_parent = '';
       
   398 					$clear_parents = true;
       
   399 				} else
       
   400 					$reset_parent = ", parent = '0'";
       
   401 
       
   402 				$wpdb->query( $wpdb->prepare("UPDATE $wpdb->term_taxonomy SET taxonomy = 'category' $reset_parent WHERE term_id = %d AND taxonomy = 'post_tag'", $tag->term_id) );
       
   403 
       
   404 				$clean_term_cache[] = $tag->term_id;
       
   405 				$clean_cat_cache[] = $cat['term_id'];
       
   406 				echo __('Converted successfully.') . "</li>\n";
       
   407 
       
   408 			} else {
       
   409 				printf( '<li>' . __('Tag #%s doesn&#8217;t exist!') . "</li>\n",  $tag_id );
       
   410 			}
       
   411 		}
       
   412 
       
   413 		if ( ! empty($clean_term_cache) ) {
       
   414 			$clean_term_cache = array_unique(array_values($clean_term_cache));
       
   415 			clean_term_cache($clean_term_cache, 'post_tag');
       
   416 		}
       
   417 
       
   418 		if ( ! empty($clean_cat_cache) ) {
       
   419 			$clean_cat_cache = array_unique(array_values($clean_cat_cache));
       
   420 			clean_term_cache($clean_term_cache, 'category');
       
   421 		}
       
   422 
       
   423 		if ( $clear_parents ) delete_option('category_children');
       
   424 
       
   425 		echo '</ul>';
       
   426 		if ( $hybrid_tags )
       
   427 			echo '<p>' . sprintf( __('* This tag is also a category. The converter has added all posts from it to the category. If you want to remove it, please confirm that all posts were added successfully, then delete it from the <a href="%s">Manage Tags</a> page.'), 'edit-tags.php') . '</p>';
       
   428 		echo '<p>' . sprintf( __('We&#8217;re all done here, but you can always <a href="%s">convert more</a>.'), 'admin.php?import=wp-cat2tag&amp;step=3' ) . '</p>';
       
   429 	}
       
   430 
       
   431 	function init() {
       
   432 
       
   433 		$step = (isset($_GET['step'])) ? (int) $_GET['step'] : 1;
       
   434 
       
   435 		$this->header();
       
   436 
       
   437 		if ( current_user_can('manage_categories') ) {
       
   438 
       
   439 			switch ($step) {
       
   440 				case 1 :
       
   441 					$this->categories_tab();
       
   442 				break;
       
   443 
       
   444 				case 2 :
       
   445 					check_admin_referer('import-cat2tag');
       
   446 					$this->convert_categories();
       
   447 				break;
       
   448 
       
   449 				case 3 :
       
   450 					$this->tags_tab();
       
   451 				break;
       
   452 
       
   453 				case 4 :
       
   454 					check_admin_referer('import-cat2tag');
       
   455 					$this->convert_tags();
       
   456 				break;
       
   457 			}
       
   458 		}
       
   459 
       
   460 		$this->footer();
       
   461 	}
       
   462 
       
   463 	function WP_Categories_to_Tags() {
       
   464 		// Do nothing.
       
   465 	}
       
   466 }
       
   467 
       
   468 $wp_cat2tag_importer = new WP_Categories_to_Tags();
       
   469 
       
   470 register_importer('wp-cat2tag', __('Categories and Tags Converter'), __('Convert existing categories to tags or tags to categories, selectively.'), array(&$wp_cat2tag_importer, 'init'));
       
   471 
       
   472 ?>