Switch language

wpseek.com
A WordPress-centric search engine for devs and theme authors




upgrade_230 [ WordPress Function ]

upgrade_230 ( No parameters )
Defined at:



Execute changes made in WordPress 2.3.

Source


<?php
function upgrade_230() {
    global 
$wp_current_db_version$wpdb;

    if ( 
$wp_current_db_version 5200 ) {
        
populate_roles_230();
    }

    
// Convert categories to terms.
    
$tt_ids = array();
    
$have_tags false;
    
$categories $wpdb->get_results("SELECT * FROM $wpdb->categories ORDER BY cat_ID");
    foreach (
$categories as $category) {
        
$term_id = (int) $category->cat_ID;
        
$name $category->cat_name;
        
$description $category->category_description;
        
$slug $category->category_nicename;
        
$parent $category->category_parent;
        
$term_group 0;

        
// Associate terms with the same slug in a term group and make slugs unique.
        
if ( $exists $wpdb->get_results$wpdb->prepare("SELECT term_id, term_group FROM $wpdb->terms WHERE slug = %s"$slug) ) ) {
            
$term_group $exists[0]->term_group;
            
$id $exists[0]->term_id;
            
$num 2;
            do {
                
$alt_slug $slug "-$num";
                
$num++;
                
$slug_check $wpdb->get_var$wpdb->prepare("SELECT slug FROM $wpdb->terms WHERE slug = %s"$alt_slug) );
            } while ( 
$slug_check );

            
$slug $alt_slug;

            if ( empty( 
$term_group ) ) {
                
$term_group $wpdb->get_var("SELECT MAX(term_group) FROM $wpdb->terms GROUP BY term_group") + 1;
                
$wpdb->query$wpdb->prepare("UPDATE $wpdb->terms SET term_group = %d WHERE term_id = %d"$term_group$id) );
            }
        }

        
$wpdb->query$wpdb->prepare("INSERT INTO $wpdb->terms (term_id, name, slug, term_group) VALUES
        (%d, %s, %s, %d)"
$term_id$name$slug$term_group) );

        
$count 0;
        if ( !empty(
$category->category_count) ) {
            
$count = (int) $category->category_count;
            
$taxonomy 'category';
            
$wpdb->query$wpdb->prepare("INSERT INTO $wpdb->term_taxonomy (term_id, taxonomy, description, parent, count) VALUES ( %d, %s, %s, %d, %d)"$term_id$taxonomy$description$parent$count) );
            
$tt_ids[$term_id][$taxonomy] = (int) $wpdb->insert_id;
        }

        if ( !empty(
$category->link_count) ) {
            
$count = (int) $category->link_count;
            
$taxonomy 'link_category';
            
$wpdb->query$wpdb->prepare("INSERT INTO $wpdb->term_taxonomy (term_id, taxonomy, description, parent, count) VALUES ( %d, %s, %s, %d, %d)"$term_id$taxonomy$description$parent$count) );
            
$tt_ids[$term_id][$taxonomy] = (int) $wpdb->insert_id;
        }

        if ( !empty(
$category->tag_count) ) {
            
$have_tags true;
            
$count = (int) $category->tag_count;
            
$taxonomy 'post_tag';
            
$wpdb->insert$wpdb->term_taxonomycompact('term_id''taxonomy''description''parent''count') );
            
$tt_ids[$term_id][$taxonomy] = (int) $wpdb->insert_id;
        }

        if ( empty(
$count) ) {
            
$count 0;
            
$taxonomy 'category';
            
$wpdb->insert$wpdb->term_taxonomycompact('term_id''taxonomy''description''parent''count') );
            
$tt_ids[$term_id][$taxonomy] = (int) $wpdb->insert_id;
        }
    }

    
$select 'post_id, category_id';
    if ( 
$have_tags )
        
$select .= ', rel_type';

    
$posts $wpdb->get_results("SELECT $select FROM $wpdb->post2cat GROUP BY post_id, category_id");
    foreach ( 
$posts as $post ) {
        
$post_id = (int) $post->post_id;
        
$term_id = (int) $post->category_id;
        
$taxonomy 'category';
        if ( !empty(
$post->rel_type) && 'tag' == $post->rel_type)
            
$taxonomy 'tag';
        
$tt_id $tt_ids[$term_id][$taxonomy];
        if ( empty(
$tt_id) )
            continue;

        
$wpdb->insert$wpdb->term_relationships, array('object_id' => $post_id'term_taxonomy_id' => $tt_id) );
    }

    
// < 3570 we used linkcategories. >= 3570 we used categories and link2cat.
    
if ( $wp_current_db_version 3570 ) {
        
// Create link_category terms for link categories. Create a map of link cat IDs
        // to link_category terms.
        
$link_cat_id_map = array();
        
$default_link_cat 0;
        
$tt_ids = array();
        
$link_cats $wpdb->get_results("SELECT cat_id, cat_name FROM " $wpdb->prefix 'linkcategories');
        foreach ( 
$link_cats as $category) {
            
$cat_id = (int) $category->cat_id;
            
$term_id 0;
            
$name $wpdb->escape($category->cat_name);
            
$slug sanitize_title($name);
            
$term_group 0;

            
// Associate terms with the same slug in a term group and make slugs unique.
            
if ( $exists $wpdb->get_results$wpdb->prepare("SELECT term_id, term_group FROM $wpdb->terms WHERE slug = %s"$slug) ) ) {
                
$term_group $exists[0]->term_group;
                
$term_id $exists[0]->term_id;
            }

            if ( empty(
$term_id) ) {
                
$wpdb->insert$wpdb->termscompact('name''slug''term_group') );
                
$term_id = (int) $wpdb->insert_id;
            }

            
$link_cat_id_map[$cat_id] = $term_id;
            
$default_link_cat $term_id;

            
$wpdb->insert$wpdb->term_taxonomy, array('term_id' => $term_id'taxonomy' => 'link_category''description' => '''parent' => 0'count' => 0) );
            
$tt_ids[$term_id] = (int) $wpdb->insert_id;
        }

        
// Associate links to cats.
        
$links $wpdb->get_results("SELECT link_id, link_category FROM $wpdb->links");
        if ( !empty(
$links) ) foreach ( $links as $link ) {
            if ( 
== $link->link_category )
                continue;
            if ( ! isset(
$link_cat_id_map[$link->link_category]) )
                continue;
            
$term_id $link_cat_id_map[$link->link_category];
            
$tt_id $tt_ids[$term_id];
            if ( empty(
$tt_id) )
                continue;

            
$wpdb->insert$wpdb->term_relationships, array('object_id' => $link->link_id'term_taxonomy_id' => $tt_id) );
        }

        
// Set default to the last category we grabbed during the upgrade loop.
        
update_option('default_link_category'$default_link_cat);
    } else {
        
$links $wpdb->get_results("SELECT link_id, category_id FROM $wpdb->link2cat GROUP BY link_id, category_id");
        foreach ( 
$links as $link ) {
            
$link_id = (int) $link->link_id;
            
$term_id = (int) $link->category_id;
            
$taxonomy 'link_category';
            
$tt_id $tt_ids[$term_id][$taxonomy];
            if ( empty(
$tt_id) )
                continue;
            
$wpdb->insert$wpdb->term_relationships, array('object_id' => $link_id'term_taxonomy_id' => $tt_id) );
        }
    }

    if ( 
$wp_current_db_version 4772 ) {
        
// Obsolete linkcategories table
        
$wpdb->query('DROP TABLE IF EXISTS ' $wpdb->prefix 'linkcategories');
    }

    
// Recalculate all counts
    
$terms $wpdb->get_results("SELECT term_taxonomy_id, taxonomy FROM $wpdb->term_taxonomy");
    foreach ( (array) 
$terms as $term ) {
        if ( (
'post_tag' == $term->taxonomy) || ('category' == $term->taxonomy) )
            
$count $wpdb->get_var$wpdb->prepare("SELECT COUNT(*) FROM $wpdb->term_relationships$wpdb->posts WHERE $wpdb->posts.ID = $wpdb->term_relationships.object_id AND post_status = 'publish' AND post_type = 'post' AND term_taxonomy_id = %d"$term->term_taxonomy_id) );
        else
            
$count $wpdb->get_var$wpdb->prepare("SELECT COUNT(*) FROM $wpdb->term_relationships WHERE term_taxonomy_id = %d"$term->term_taxonomy_id) );
        
$wpdb->update$wpdb->term_taxonomy, array('count' => $count), array('term_taxonomy_id' => $term->term_taxonomy_id) );
    }
}
?>

Examples [ wp-snippets.com ]

Google Arama Sonuçlarý

Dahasý ...

0 User Note(s)

Henüz yok. Ýlk sen ol!

Yeni Ekle ...



HTML5 Powered with CSS3 / Styling, Performance & Integration, and Semantics