'; if ( ! current_user_can('manage_categories') ) { echo '
'; echo '

' . __('Cheatin’ uh?') . '

'; echo '
'; } else { ?>

Categories to Tags Tags to Categories

'; } function populate_cats() { global $wpdb; $categories = get_categories('get=all'); foreach ( $categories as $category ) { $this->all_categories[] = $category; if ( tag_exists( $wpdb->escape($category->name) ) ) $this->hybrids_ids[] = $category->term_id; } } function populate_tags() { global $wpdb; $tags = get_terms( array('post_tag'), 'get=all' ); foreach ( $tags as $tag ) { $this->all_tags[] = $tag; if ( $this->_category_exists($tag->term_id) ) $this->hybrids_ids[] = $tag->term_id; } } function categories_tab() { $this->populate_cats(); $cat_num = count($this->all_categories); echo '
'; if ( $cat_num > 0 ) { echo '

Convert Categories (' . $cat_num . ') to Tags.

'; echo '
'; echo '

' . __('Hey there. Here you can selectively converts existing categories to tags. To get started, check the categories you wish to be converted, then click the Convert button.') . '

'; echo '

' . __('Keep in mind that if you convert a category with child categories, the children become top-level orphans.') . '

'; $this->categories_form(); } elseif ( $hyb_num > 0 ) { echo '

' . __('You have no categories that can be converted. However some of your categories are both a tag and a category.') . '

'; } else { echo '

'.__('You have no categories to convert!').'

'; } } function categories_form() { ?>

hybrids_ids) ) { echo '

' . __('* This category is also a tag. It cannot be convert again.') . '

'; } ?>

populate_tags(); $tags_num = count($this->all_tags); echo '
'; if ( $tags_num > 0 ) { echo '

Convert Tags (' . $tags_num . ') to Categories.

'; echo '
'; echo '

' . __('Here you can selectively converts existing tags to categories. To get started, check the tags you wish to be converted, then click the Convert button.') . '

'; echo '

' . __('The newly created categories will still be associated with the same posts.') . '

'; $this->tags_form(); } elseif ( $hyb_num > 0 ) { echo '

' . __('You have no tags that can be converted. However some of your tags are both a tag and a category.') . '

'; } else { echo '

'.__('You have no tags to convert!').'

'; } } function tags_form() { ?>

hybrids_ids) ) echo '

' . __('* This tag is also a category. It cannot be converted again.') . '

'; ?>

categories_to_convert)) { echo '
'; echo '

' . sprintf(__('Uh, oh. Something didn’t work. Please try again.'), 'admin.php?import=wp-cat2tag') . '

'; echo '
'; return; } if ( empty($this->categories_to_convert) ) $this->categories_to_convert = $_POST['cats_to_convert']; $hier = _get_term_hierarchy('category'); echo ''; echo '

' . sprintf( __('We’re all done here, but you can always convert more.'), 'admin.php?import=wp-cat2tag' ) . '

'; } function convert_tags() { global $wpdb; if ( (!isset($_POST['tags_to_convert']) || !is_array($_POST['tags_to_convert'])) && empty($this->tags_to_convert)) { echo '
'; echo '

' . sprintf(__('Uh, oh. Something didn’t work. Please try again.'), 'admin.php?import=wp-cat2tag&step=3') . '

'; echo '
'; return; } if ( empty($this->categories_to_convert) ) $this->tags_to_convert = $_POST['tags_to_convert']; $clean_cache = array(); echo ''; echo '

' . sprintf( __('We’re all done here, but you can always convert more.'), 'admin.php?import=wp-cat2tag&step=3' ) . '

'; } function init() { $step = (isset($_GET['step'])) ? (int) $_GET['step'] : 1; $this->header(); if ( current_user_can('manage_categories') ) { switch ($step) { case 1 : $this->categories_tab(); break; case 2 : check_admin_referer('import-cat2tag'); $this->convert_categories(); break; case 3 : $this->tags_tab(); break; case 4 : check_admin_referer('import-cat2tag'); $this->convert_tags(); break; } } $this->footer(); } function WP_Categories_to_Tags() { // Do nothing. } } $wp_cat2tag_importer = new WP_Categories_to_Tags(); register_importer('wp-cat2tag', __('Categories and Tags Converter'), __('Convert existing categories to tags or tags to categories, selectively.'), array(&$wp_cat2tag_importer, 'init')); ?>