I just slapped myself silly for not thinking about it earlier
- $got_gmt_fields = ($wpdb->get_var("SELECT MAX(post_date_gmt) FROM $wpdb->posts") == '0000-00-00 00:00:00') ? false : true;
+ $got_gmt_fields = ! ($wpdb->get_var("SELECT MAX(post_date_gmt) FROM $wpdb->posts") == '0000-00-00 00:00:00');
if (!$got_gmt_fields) {
@@ -437,7 +600,8 @@ function upgrade_130() {
else
$guid = $post->guid;
- $wpdb->query("UPDATE $wpdb->posts SET post_title = '$post_title', post_content = '$post_content', post_excerpt = '$post_excerpt', guid = '$guid' WHERE ID = '$post->ID'");
+ $wpdb->update( $wpdb->posts, compact('post_title', 'post_content', 'post_excerpt', 'guid'), array('ID' => $post->ID) );
+
}
}
@@ -445,9 +609,10 @@ function upgrade_130() {
$comments = $wpdb->get_results("SELECT comment_ID, comment_author, comment_content FROM $wpdb->comments");
if ($comments) {
foreach($comments as $comment) {
- $comment_content = addslashes(deslash($comment->comment_content));
- $comment_author = addslashes(deslash($comment->comment_author));
- $wpdb->query("UPDATE $wpdb->comments SET comment_content = '$comment_content', comment_author = '$comment_author' WHERE comment_ID = '$comment->comment_ID'");
+ $comment_content = deslash($comment->comment_content);
+ $comment_author = deslash($comment->comment_author);
+
+ $wpdb->update($wpdb->comments, compact('comment_content', 'comment_author'), array('comment_ID' => $comment->comment_ID) );
}
}
@@ -455,15 +620,11 @@ function upgrade_130() {
$links = $wpdb->get_results("SELECT link_id, link_name, link_description FROM $wpdb->links");
if ($links) {
foreach($links as $link) {
- $link_name = addslashes(deslash($link->link_name));
- $link_description = addslashes(deslash($link->link_description));
- $wpdb->query("UPDATE $wpdb->links SET link_name = '$link_name', link_description = '$link_description' WHERE link_id = '$link->link_id'");
- }
- }
+ $link_name = deslash($link->link_name);
+ $link_description = deslash($link->link_description);
- // The "paged" option for what_to_show is no more.
- if ($wpdb->get_var("SELECT option_value FROM $wpdb->options WHERE option_name = 'what_to_show'") == 'paged') {
- $wpdb->query("UPDATE $wpdb->options SET option_value = 'posts' WHERE option_name = 'what_to_show'");
+ $wpdb->update( $wpdb->links, compact('link_name', 'link_description'), array('link_id' => $link->link_id) );
+ }
}
$active_plugins = __get_option('active_plugins');
@@ -491,8 +652,10 @@ function upgrade_130() {
if ( 1 != $option->dupes ) { // Could this be done in the query?
$limit = $option->dupes - 1;
$dupe_ids = $wpdb->get_col( $wpdb->prepare("SELECT option_id FROM $wpdb->options WHERE option_name = %s LIMIT %d", $option->option_name, $limit) );
- $dupe_ids = join($dupe_ids, ',');
- $wpdb->query("DELETE FROM $wpdb->options WHERE option_id IN ($dupe_ids)");
+ if ( $dupe_ids ) {
+ $dupe_ids = join($dupe_ids, ',');
+ $wpdb->query("DELETE FROM $wpdb->options WHERE option_id IN ($dupe_ids)");
+ }
}
}
@@ -512,23 +675,23 @@ function upgrade_160() {
$users = $wpdb->get_results("SELECT * FROM $wpdb->users");
foreach ( $users as $user ) :
if ( !empty( $user->user_firstname ) )
- update_usermeta( $user->ID, 'first_name', $wpdb->escape($user->user_firstname) );
+ update_user_meta( $user->ID, 'first_name', $wpdb->escape($user->user_firstname) );
if ( !empty( $user->user_lastname ) )
- update_usermeta( $user->ID, 'last_name', $wpdb->escape($user->user_lastname) );
+ update_user_meta( $user->ID, 'last_name', $wpdb->escape($user->user_lastname) );
if ( !empty( $user->user_nickname ) )
- update_usermeta( $user->ID, 'nickname', $wpdb->escape($user->user_nickname) );
+ update_user_meta( $user->ID, 'nickname', $wpdb->escape($user->user_nickname) );
if ( !empty( $user->user_level ) )
- update_usermeta( $user->ID, $wpdb->prefix . 'user_level', $user->user_level );
+ update_user_meta( $user->ID, $wpdb->prefix . 'user_level', $user->user_level );
if ( !empty( $user->user_icq ) )
- update_usermeta( $user->ID, 'icq', $wpdb->escape($user->user_icq) );
+ update_user_meta( $user->ID, 'icq', $wpdb->escape($user->user_icq) );
if ( !empty( $user->user_aim ) )
- update_usermeta( $user->ID, 'aim', $wpdb->escape($user->user_aim) );
+ update_user_meta( $user->ID, 'aim', $wpdb->escape($user->user_aim) );
if ( !empty( $user->user_msn ) )
- update_usermeta( $user->ID, 'msn', $wpdb->escape($user->user_msn) );
+ update_user_meta( $user->ID, 'msn', $wpdb->escape($user->user_msn) );
if ( !empty( $user->user_yim ) )
- update_usermeta( $user->ID, 'yim', $wpdb->escape($user->user_icq) );
+ update_user_meta( $user->ID, 'yim', $wpdb->escape($user->user_icq) );
if ( !empty( $user->user_description ) )
- update_usermeta( $user->ID, 'description', $wpdb->escape($user->user_description) );
+ update_user_meta( $user->ID, 'description', $wpdb->escape($user->user_description) );
if ( isset( $user->user_idmode ) ):
$idmode = $user->user_idmode;
@@ -539,15 +702,15 @@ function upgrade_160() {
if ($idmode == 'namefl') $id = $user->user_firstname.' '.$user->user_lastname;
if ($idmode == 'namelf') $id = $user->user_lastname.' '.$user->user_firstname;
if (!$idmode) $id = $user->user_nickname;
- $wpdb->query( $wpdb->prepare("UPDATE $wpdb->users SET display_name = %s WHERE ID = %d", $id, $user->ID) );
+ $wpdb->update( $wpdb->users, array('display_name' => $id), array('ID' => $user->ID) );
endif;
// FIXME: RESET_CAPS is temporary code to reset roles and caps if flag is set.
- $caps = get_usermeta( $user->ID, $wpdb->prefix . 'capabilities');
+ $caps = get_user_meta( $user->ID, $wpdb->prefix . 'capabilities');
if ( empty($caps) || defined('RESET_CAPS') ) {
- $level = get_usermeta($user->ID, $wpdb->prefix . 'user_level');
+ $level = get_user_meta($user->ID, $wpdb->prefix . 'user_level', true);
$role = translate_level_to_role($level);
- update_usermeta( $user->ID, $wpdb->prefix . 'capabilities', array($role => true) );
+ update_user_meta( $user->ID, $wpdb->prefix . 'capabilities', array($role => true) );
}
endforeach;
@@ -559,21 +722,19 @@ function upgrade_160() {
// populate comment_count field of posts table
$comments = $wpdb->get_results( "SELECT comment_post_ID, COUNT(*) as c FROM $wpdb->comments WHERE comment_approved = '1' GROUP BY comment_post_ID" );
- if( is_array( $comments ) ) {
- foreach ($comments as $comment) {
- $wpdb->query( $wpdb->prepare("UPDATE $wpdb->posts SET comment_count = %d WHERE ID = %d", $comment->c, $comment->comment_post_ID) );
- }
- }
+ if ( is_array( $comments ) )
+ foreach ($comments as $comment)
+ $wpdb->update( $wpdb->posts, array('comment_count' => $comment->c), array('ID' => $comment->comment_post_ID) );
// Some alpha versions used a post status of object instead of attachment and put
// the mime type in post_type instead of post_mime_type.
if ( $wp_current_db_version > 2541 && $wp_current_db_version <= 3091 ) {
$objects = $wpdb->get_results("SELECT ID, post_type FROM $wpdb->posts WHERE post_status = 'object'");
foreach ($objects as $object) {
- $wpdb->query( $wpdb->prepare("UPDATE $wpdb->posts SET post_status = 'attachment',
- post_mime_type = %s,
- post_type = ''
- WHERE ID = %d", $object->post_type, $object->ID) );
+ $wpdb->update( $wpdb->posts, array( 'post_status' => 'attachment',
+ 'post_mime_type' => $object->post_type,
+ 'post_type' => ''),
+ array( 'ID' => $object->ID ) );
$meta = get_post_meta($object->ID, 'imagedata', true);
if ( ! empty($meta['file']) )
@@ -622,7 +783,7 @@ function upgrade_210() {
$posts = $wpdb->get_results("SELECT ID, post_date FROM $wpdb->posts WHERE post_status ='future'");
if ( !empty($posts) )
foreach ( $posts as $post )
- wp_schedule_single_event(mysql2date('U', $post->post_date), 'publish_future_post', array($post->ID));
+ wp_schedule_single_event(mysql2date('U', $post->post_date, false), 'publish_future_post', array($post->ID));
}
}
@@ -691,14 +852,14 @@ function upgrade_230() {
$have_tags = true;
$count = (int) $category->tag_count;
$taxonomy = 'post_tag';
- $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) );
+ $wpdb->insert( $wpdb->term_taxonomy, compact('term_id', 'taxonomy', 'description', 'parent', 'count') );
$tt_ids[$term_id][$taxonomy] = (int) $wpdb->insert_id;
}
if ( empty($count) ) {
$count = 0;
$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) );
+ $wpdb->insert( $wpdb->term_taxonomy, compact('term_id', 'taxonomy', 'description', 'parent', 'count') );
$tt_ids[$term_id][$taxonomy] = (int) $wpdb->insert_id;
}
}
@@ -718,7 +879,7 @@ function upgrade_230() {
if ( empty($tt_id) )
continue;
- $wpdb->query( $wpdb->prepare("INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id) VALUES ( %d, %d)", $post_id, $tt_id) );
+ $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.
@@ -743,14 +904,14 @@ function upgrade_230() {
}
if ( empty($term_id) ) {
- $wpdb->query( $wpdb->prepare("INSERT INTO $wpdb->terms (name, slug, term_group) VALUES (%s, %s, %d)", $name, $slug, $term_group) );
+ $wpdb->insert( $wpdb->terms, compact('name', 'slug', 'term_group') );
$term_id = (int) $wpdb->insert_id;
}
$link_cat_id_map[$cat_id] = $term_id;
$default_link_cat = $term_id;
- $wpdb->query( $wpdb->prepare("INSERT INTO $wpdb->term_taxonomy (term_id, taxonomy, description, parent, count) VALUES (%d, 'link_category', '', '0', '0')", $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;
}
@@ -766,7 +927,7 @@ function upgrade_230() {
if ( empty($tt_id) )
continue;
- $wpdb->query( $wpdb->prepare("INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id) VALUES ( %d, %d)", $link->link_id, $tt_id) );
+ $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.
@@ -780,8 +941,7 @@ function upgrade_230() {
$tt_id = $tt_ids[$term_id][$taxonomy];
if ( empty($tt_id) )
continue;
-
- $wpdb->query( $wpdb->prepare("INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id) VALUES ( %d, %d)", $link_id, $tt_id) );
+ $wpdb->insert( $wpdb->term_relationships, array('object_id' => $link_id, 'term_taxonomy_id' => $tt_id) );
}
}
@@ -797,7 +957,7 @@ function upgrade_230() {
$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->query( $wpdb->prepare("UPDATE $wpdb->term_taxonomy SET count = %d WHERE term_taxonomy_id = %d", $count, $term->term_taxonomy_id) );
+ $wpdb->update( $wpdb->term_taxonomy, array('count' => $count), array('term_taxonomy_id' => $term->term_taxonomy_id) );
}
}
@@ -852,18 +1012,6 @@ function upgrade_250() {
}
-/**
- * Execute changes made in WordPress 2.5.1.
- *
- * @since 2.5.1
- */
-function upgrade_251() {
- global $wp_current_db_version;
-
- // Make the secret longer
- update_option('secret', wp_generate_password(64));
-}
-
/**
* Execute changes made in WordPress 2.5.2.
*
@@ -908,6 +1056,127 @@ function upgrade_270() {
$wpdb->query( "UPDATE $wpdb->posts SET post_date = post_modified WHERE post_date = '0000-00-00 00:00:00'" );
}
+/**
+ * Execute changes made in WordPress 2.8.
+ *
+ * @since 2.8.0
+ */
+function upgrade_280() {
+ global $wp_current_db_version, $wpdb;
+
+ if ( $wp_current_db_version < 10360 )
+ populate_roles_280();
+ if ( is_multisite() ) {
+ $start = 0;
+ while( $rows = $wpdb->get_results( "SELECT option_name, option_value FROM $wpdb->options ORDER BY option_id LIMIT $start, 20" ) ) {
+ foreach( $rows as $row ) {
+ $value = $row->option_value;
+ if ( !@unserialize( $value ) )
+ $value = stripslashes( $value );
+ if ( $value !== $row->option_value ) {
+ update_option( $row->option_name, $value );
+ }
+ }
+ $start += 20;
+ }
+ refresh_blog_details( $wpdb->blogid );
+ }
+}
+
+/**
+ * Execute changes made in WordPress 2.9.
+ *
+ * @since 2.9.0
+ */
+function upgrade_290() {
+ global $wp_current_db_version;
+
+ if ( $wp_current_db_version < 11958 ) {
+ // Previously, setting depth to 1 would redundantly disable threading, but now 2 is the minimum depth to avoid confusion
+ if ( get_option( 'thread_comments_depth' ) == '1' ) {
+ update_option( 'thread_comments_depth', 2 );
+ update_option( 'thread_comments', 0 );
+ }
+ }
+}
+
+/**
+ * Execute changes made in WordPress 3.0.
+ *
+ * @since 3.0.0
+ */
+function upgrade_300() {
+ global $wp_current_db_version, $wpdb;
+
+ if ( $wp_current_db_version < 15093 )
+ populate_roles_300();
+
+ if ( $wp_current_db_version < 14139 && is_multisite() && is_main_site() && ! defined( 'MULTISITE' ) && get_site_option( 'siteurl' ) === false )
+ add_site_option( 'siteurl', '' );
+
+ // 3.0-alpha nav menu postmeta changes. can be removed before release. // r13802
+ if ( $wp_current_db_version >= 13226 && $wp_current_db_version < 13974 )
+ $wpdb->query( "DELETE FROM $wpdb->postmeta WHERE meta_key IN( 'menu_type', 'object_id', 'menu_new_window', 'menu_link', '_menu_item_append', 'menu_item_append', 'menu_item_type', 'menu_item_object_id', 'menu_item_target', 'menu_item_classes', 'menu_item_xfn', 'menu_item_url' )" );
+
+ // 3.0-beta1 remove_user primitive->meta cap. can be removed before release. r13956
+ if ( $wp_current_db_version >= 12751 && $wp_current_db_version < 13974 ) {
+ $role =& get_role( 'administrator' );
+ if ( ! empty( $role ) )
+ $role->remove_cap( 'remove_user' );
+ }
+
+ // 3.0-beta1 nav menu postmeta changes. can be removed before release. r13974
+ if ( $wp_current_db_version >= 13802 && $wp_current_db_version < 13974 )
+ $wpdb->update( $wpdb->postmeta, array( 'meta_value' => '' ), array( 'meta_key' => '_menu_item_target', 'meta_value' => '_self' ) );
+
+ // 3.0 screen options key name changes.
+ if ( is_main_site() && !defined('DO_NOT_UPGRADE_GLOBAL_TABLES') ) {
+ $prefix = like_escape($wpdb->base_prefix);
+ $wpdb->query( "DELETE FROM $wpdb->usermeta WHERE meta_key LIKE '{$prefix}%meta-box-hidden%' OR meta_key LIKE '{$prefix}%closedpostboxes%' OR meta_key LIKE '{$prefix}%manage-%-columns-hidden%' OR meta_key LIKE '{$prefix}%meta-box-order%' OR meta_key LIKE '{$prefix}%metaboxorder%' OR meta_key LIKE '{$prefix}%screen_layout%'
+ OR meta_key = 'manageedittagscolumnshidden' OR meta_key='managecategoriescolumnshidden' OR meta_key = 'manageedit-tagscolumnshidden' OR meta_key = 'manageeditcolumnshidden' OR meta_key = 'categories_per_page' OR meta_key = 'edit_tags_per_page'" );
+ }
+
+}
+
+/**
+ * Execute network level changes
+ *
+ * @since 3.0.0
+ */
+function upgrade_network() {
+ global $wp_current_db_version, $wpdb;
+ // 2.8
+ if ( $wp_current_db_version < 11549 ) {
+ $wpmu_sitewide_plugins = get_site_option( 'wpmu_sitewide_plugins' );
+ $active_sitewide_plugins = get_site_option( 'active_sitewide_plugins' );
+ if ( $wpmu_sitewide_plugins ) {
+ if ( !$active_sitewide_plugins )
+ $sitewide_plugins = (array) $wpmu_sitewide_plugins;
+ else
+ $sitewide_plugins = array_merge( (array) $active_sitewide_plugins, (array) $wpmu_sitewide_plugins );
+
+ update_site_option( 'active_sitewide_plugins', $sitewide_plugins );
+ }
+ delete_site_option( 'wpmu_sitewide_plugins' );
+ delete_site_option( 'deactivated_sitewide_plugins' );
+
+ $start = 0;
+ while( $rows = $wpdb->get_results( "SELECT meta_key, meta_value FROM {$wpdb->sitemeta} ORDER BY meta_id LIMIT $start, 20" ) ) {
+ foreach( $rows as $row ) {
+ $value = $row->meta_value;
+ if ( !@unserialize( $value ) )
+ $value = stripslashes( $value );
+ if ( $value !== $row->meta_value ) {
+ update_site_option( $row->meta_key, $value );
+ }
+ }
+ $start += 20;
+ }
+ }
+ // 3.0
+ if ( $wp_current_db_version < 13576 )
+ update_site_option( 'global_terms_enabled', '1' );
+}
// The functions we use to actually do stuff
@@ -926,19 +1195,13 @@ function upgrade_270() {
*/
function maybe_create_table($table_name, $create_ddl) {
global $wpdb;
- foreach ($wpdb->get_col("SHOW TABLES",0) as $table ) {
- if ($table == $table_name) {
- return true;
- }
- }
+ if ( $wpdb->get_var("SHOW TABLES LIKE '$table_name'") == $table_name )
+ return true;
//didn't find it try to create it.
$q = $wpdb->query($create_ddl);
// we cannot directly tell that whether this succeeded!
- foreach ($wpdb->get_col("SHOW TABLES",0) as $table ) {
- if ($table == $table_name) {
- return true;
- }
- }
+ if ( $wpdb->get_var("SHOW TABLES LIKE '$table_name'") == $table_name )
+ return true;
return false;
}
@@ -1043,11 +1306,11 @@ function __get_option($setting) {
global $wpdb;
if ( $setting == 'home' && defined( 'WP_HOME' ) ) {
- return preg_replace( '|/+$|', '', constant( 'WP_HOME' ) );
+ return preg_replace( '|/+$|', '', WP_HOME );
}
if ( $setting == 'siteurl' && defined( 'WP_SITEURL' ) ) {
- return preg_replace( '|/+$|', '', constant( 'WP_SITEURL' ) );
+ return preg_replace( '|/+$|', '', WP_SITEURL );
}
$option = $wpdb->get_var( $wpdb->prepare("SELECT option_value FROM $wpdb->options WHERE option_name = %s", $setting) );
@@ -1107,9 +1370,9 @@ function dbDelta($queries, $execute = true) {
global $wpdb;
// Separate individual queries into an array
- if( !is_array($queries) ) {
+ if ( !is_array($queries) ) {
$queries = explode( ';', $queries );
- if('' == $queries[count($queries) - 1]) array_pop($queries);
+ if ('' == $queries[count($queries) - 1]) array_pop($queries);
}
$cqueries = array(); // Creation Queries
@@ -1118,33 +1381,32 @@ function dbDelta($queries, $execute = true) {
// Create a tablename index for an array ($cqueries) of queries
foreach($queries as $qry) {
- if(preg_match("|CREATE TABLE ([^ ]*)|", $qry, $matches)) {
- $cqueries[strtolower($matches[1])] = $qry;
+ if (preg_match("|CREATE TABLE ([^ ]*)|", $qry, $matches)) {
+ $cqueries[trim( strtolower($matches[1]), '`' )] = $qry;
$for_update[$matches[1]] = 'Created table '.$matches[1];
- }
- else if(preg_match("|CREATE DATABASE ([^ ]*)|", $qry, $matches)) {
+ } else if (preg_match("|CREATE DATABASE ([^ ]*)|", $qry, $matches)) {
array_unshift($cqueries, $qry);
- }
- else if(preg_match("|INSERT INTO ([^ ]*)|", $qry, $matches)) {
+ } else if (preg_match("|INSERT INTO ([^ ]*)|", $qry, $matches)) {
$iqueries[] = $qry;
- }
- else if(preg_match("|UPDATE ([^ ]*)|", $qry, $matches)) {
+ } else if (preg_match("|UPDATE ([^ ]*)|", $qry, $matches)) {
$iqueries[] = $qry;
- }
- else {
+ } else {
// Unrecognized query type
}
}
// Check to see which tables and fields exist
- if($tables = $wpdb->get_col('SHOW TABLES;')) {
+ if ($tables = $wpdb->get_col('SHOW TABLES;')) {
// For every table in the database
- foreach($tables as $table) {
+ foreach ($tables as $table) {
+ // Upgrade global tables only for the main site. Don't upgrade at all if DO_NOT_UPGRADE_GLOBAL_TABLES is defined.
+ if ( in_array($table, $wpdb->tables('global')) && ( !is_main_site() || defined('DO_NOT_UPGRADE_GLOBAL_TABLES') ) )
+ continue;
+
// If a table query exists for the database table...
- if( array_key_exists(strtolower($table), $cqueries) ) {
+ if ( array_key_exists(strtolower($table), $cqueries) ) {
// Clear the field and index arrays
- unset($cfields);
- unset($indices);
+ $cfields = $indices = array();
// Get all of the field names in the query from between the parens
preg_match("|\((.*)\)|ms", $cqueries[strtolower($table)], $match2);
$qryline = trim($match2[1]);
@@ -1155,15 +1417,14 @@ function dbDelta($queries, $execute = true) {
//echo "
\n".print_r(strtolower($table), true).":\n".print_r($cqueries, true)."
";
// For every field line specified in the query
- foreach($flds as $fld) {
+ foreach ($flds as $fld) {
// Extract the field name
preg_match("|^([^ ]*)|", trim($fld), $fvals);
- $fieldname = $fvals[1];
+ $fieldname = trim( $fvals[1], '`' );
// Verify the found field name
$validfield = true;
- switch(strtolower($fieldname))
- {
+ switch (strtolower($fieldname)) {
case '':
case 'primary':
case 'index':
@@ -1177,7 +1438,7 @@ function dbDelta($queries, $execute = true) {
$fld = trim($fld);
// If it's a valid field, add it to the field array
- if($validfield) {
+ if ($validfield) {
$cfields[strtolower($fieldname)] = trim($fld, ", \n");
}
}
@@ -1186,15 +1447,15 @@ function dbDelta($queries, $execute = true) {
$tablefields = $wpdb->get_results("DESCRIBE {$table};");
// For every field in the table
- foreach($tablefields as $tablefield) {
+ foreach ($tablefields as $tablefield) {
// If the table field exists in the field array...
- if(array_key_exists(strtolower($tablefield->Field), $cfields)) {
+ if (array_key_exists(strtolower($tablefield->Field), $cfields)) {
// Get the field type from the query
preg_match("|".$tablefield->Field." ([^ ]*( unsigned)?)|i", $cfields[strtolower($tablefield->Field)], $matches);
$fieldtype = $matches[1];
// Is actual field type different from the field type in query?
- if($tablefield->Type != $fieldtype) {
+ if ($tablefield->Type != $fieldtype) {
// Add a query to change the column type
$cqueries[] = "ALTER TABLE {$table} CHANGE COLUMN {$tablefield->Field} " . $cfields[strtolower($tablefield->Field)];
$for_update[$table.'.'.$tablefield->Field] = "Changed type of {$table}.{$tablefield->Field} from {$tablefield->Type} to {$fieldtype}";
@@ -1202,10 +1463,9 @@ function dbDelta($queries, $execute = true) {
// Get the default value from the array
//echo "{$cfields[strtolower($tablefield->Field)]}
";
- if(preg_match("| DEFAULT '(.*)'|i", $cfields[strtolower($tablefield->Field)], $matches)) {
+ if (preg_match("| DEFAULT '(.*)'|i", $cfields[strtolower($tablefield->Field)], $matches)) {
$default_value = $matches[1];
- if($tablefield->Default != $default_value)
- {
+ if ($tablefield->Default != $default_value) {
// Add a query to change the column's default value
$cqueries[] = "ALTER TABLE {$table} ALTER COLUMN {$tablefield->Field} SET DEFAULT '{$default_value}'";
$for_update[$table.'.'.$tablefield->Field] = "Changed default value of {$table}.{$tablefield->Field} from {$tablefield->Default} to {$default_value}";
@@ -1214,14 +1474,13 @@ function dbDelta($queries, $execute = true) {
// Remove the field from the array (so it's not added)
unset($cfields[strtolower($tablefield->Field)]);
- }
- else {
+ } else {
// This field exists in the table, but not in the creation queries?
}
}
// For every remaining field specified for the table
- foreach($cfields as $fieldname => $fielddef) {
+ foreach ($cfields as $fieldname => $fielddef) {
// Push a query line into $cqueries that adds the field to that table
$cqueries[] = "ALTER TABLE {$table} ADD COLUMN $fielddef";
$for_update[$table.'.'.$fieldname] = 'Added column '.$table.'.'.$fieldname;
@@ -1231,12 +1490,12 @@ function dbDelta($queries, $execute = true) {
// Fetch the table index structure from the database
$tableindices = $wpdb->get_results("SHOW INDEX FROM {$table};");
- if($tableindices) {
+ if ($tableindices) {
// Clear the index array
unset($index_ary);
// For every index in the table
- foreach($tableindices as $tableindex) {
+ foreach ($tableindices as $tableindex) {
// Add the index to the index data array
$keyname = $tableindex->Key_name;
$index_ary[$keyname]['columns'][] = array('fieldname' => $tableindex->Column_name, 'subpart' => $tableindex->Sub_part);
@@ -1244,32 +1503,31 @@ function dbDelta($queries, $execute = true) {
}
// For each actual index in the index array
- foreach($index_ary as $index_name => $index_data) {
+ foreach ($index_ary as $index_name => $index_data) {
// Build a create string to compare to the query
$index_string = '';
- if($index_name == 'PRIMARY') {
+ if ($index_name == 'PRIMARY') {
$index_string .= 'PRIMARY ';
- }
- else if($index_data['unique']) {
+ } else if($index_data['unique']) {
$index_string .= 'UNIQUE ';
}
$index_string .= 'KEY ';
- if($index_name != 'PRIMARY') {
+ if ($index_name != 'PRIMARY') {
$index_string .= $index_name;
}
$index_columns = '';
// For each column in the index
- foreach($index_data['columns'] as $column_data) {
- if($index_columns != '') $index_columns .= ',';
+ foreach ($index_data['columns'] as $column_data) {
+ if ($index_columns != '') $index_columns .= ',';
// Add the field to the column list string
$index_columns .= $column_data['fieldname'];
- if($column_data['subpart'] != '') {
+ if ($column_data['subpart'] != '') {
$index_columns .= '('.$column_data['subpart'].')';
}
}
// Add the column list to the index create string
$index_string .= ' ('.$index_columns.')';
- if(!(($aindex = array_search($index_string, $indices)) === false)) {
+ if (!(($aindex = array_search($index_string, $indices)) === false)) {
unset($indices[$aindex]);
//echo "{$table}:
Found index:".$index_string."
\n";
}
@@ -1294,8 +1552,8 @@ function dbDelta($queries, $execute = true) {
}
$allqueries = array_merge($cqueries, $iqueries);
- if($execute) {
- foreach($allqueries as $query) {
+ if ($execute) {
+ foreach ($allqueries as $query) {
//echo "".print_r($query, true)."
\n";
$wpdb->query($query);
}
@@ -1365,7 +1623,7 @@ function make_site_theme_from_oldschool($theme_name, $template) {
if ($oldfile == 'index.php') { // Check to make sure it's not a new index
$index = implode('', file("$oldpath/$oldfile"));
if (strpos($index, 'WP_USE_THEMES') !== false) {
- if (! @copy(WP_CONTENT_DIR . '/themes/default/index.php', "$site_dir/$newfile"))
+ if (! @copy(WP_CONTENT_DIR . '/themes/' . WP_DEFAULT_THEME . '/index.php', "$site_dir/$newfile"))
return false;
continue; // Don't copy anything
}
@@ -1425,12 +1683,12 @@ function make_site_theme_from_oldschool($theme_name, $template) {
*/
function make_site_theme_from_default($theme_name, $template) {
$site_dir = WP_CONTENT_DIR . "/themes/$template";
- $default_dir = WP_CONTENT_DIR . '/themes/default';
+ $default_dir = WP_CONTENT_DIR . '/themes/' . WP_DEFAULT_THEME;
// Copy files from the default theme to the site theme.
//$files = array('index.php', 'comments.php', 'comments-popup.php', 'footer.php', 'header.php', 'sidebar.php', 'style.css');
- $theme_dir = @ opendir("$default_dir");
+ $theme_dir = @ opendir($default_dir);
if ($theme_dir) {
while(($theme_file = readdir( $theme_dir )) !== false) {
if (is_dir("$default_dir/$theme_file"))
@@ -1521,7 +1779,7 @@ function make_site_theme() {
// Make the new site theme active.
$current_template = __get_option('template');
- if ($current_template == 'default') {
+ if ($current_template == WP_DEFAULT_THEME) {
update_option('template', $template);
update_option('stylesheet', $template);
}
@@ -1590,4 +1848,144 @@ function maybe_disable_automattic_widgets() {
}
}
+/**
+ * Runs before the schema is upgraded.
+ */
+function pre_schema_upgrade() {
+ global $wp_current_db_version, $wp_db_version, $wpdb;
+
+ // Upgrade versions prior to 2.9
+ if ( $wp_current_db_version < 11557 ) {
+ // Delete duplicate options. Keep the option with the highest option_id.
+ $wpdb->query("DELETE o1 FROM $wpdb->options AS o1 JOIN $wpdb->options AS o2 USING (`option_name`) WHERE o2.option_id > o1.option_id");
+
+ // Drop the old primary key and add the new.
+ $wpdb->query("ALTER TABLE $wpdb->options DROP PRIMARY KEY, ADD PRIMARY KEY(option_id)");
+
+ // Drop the old option_name index. dbDelta() doesn't do the drop.
+ $wpdb->query("ALTER TABLE $wpdb->options DROP INDEX option_name");
+ }
+
+}
+
+/**
+ * Install Network.
+ *
+ * @since 3.0.0
+ *
+ */
+if ( !function_exists( 'install_network' ) ) :
+function install_network() {
+ global $wpdb, $charset_collate;
+ $ms_queries = "
+CREATE TABLE $wpdb->users (
+ ID bigint(20) unsigned NOT NULL auto_increment,
+ user_login varchar(60) NOT NULL default '',
+ user_pass varchar(64) NOT NULL default '',
+ user_nicename varchar(50) NOT NULL default '',
+ user_email varchar(100) NOT NULL default '',
+ user_url varchar(100) NOT NULL default '',
+ user_registered datetime NOT NULL default '0000-00-00 00:00:00',
+ user_activation_key varchar(60) NOT NULL default '',
+ user_status int(11) NOT NULL default '0',
+ display_name varchar(250) NOT NULL default '',
+ spam tinyint(2) NOT NULL default '0',
+ deleted tinyint(2) NOT NULL default '0',
+ PRIMARY KEY (ID),
+ KEY user_login_key (user_login),
+ KEY user_nicename (user_nicename)
+) $charset_collate;
+CREATE TABLE $wpdb->blogs (
+ blog_id bigint(20) NOT NULL auto_increment,
+ site_id bigint(20) NOT NULL default '0',
+ domain varchar(200) NOT NULL default '',
+ path varchar(100) NOT NULL default '',
+ registered datetime NOT NULL default '0000-00-00 00:00:00',
+ last_updated datetime NOT NULL default '0000-00-00 00:00:00',
+ public tinyint(2) NOT NULL default '1',
+ archived enum('0','1') NOT NULL default '0',
+ mature tinyint(2) NOT NULL default '0',
+ spam tinyint(2) NOT NULL default '0',
+ deleted tinyint(2) NOT NULL default '0',
+ lang_id int(11) NOT NULL default '0',
+ PRIMARY KEY (blog_id),
+ KEY domain (domain(50),path(5)),
+ KEY lang_id (lang_id)
+) $charset_collate;
+CREATE TABLE $wpdb->blog_versions (
+ blog_id bigint(20) NOT NULL default '0',
+ db_version varchar(20) NOT NULL default '',
+ last_updated datetime NOT NULL default '0000-00-00 00:00:00',
+ PRIMARY KEY (blog_id),
+ KEY db_version (db_version)
+) $charset_collate;
+CREATE TABLE $wpdb->registration_log (
+ ID bigint(20) NOT NULL auto_increment,
+ email varchar(255) NOT NULL default '',
+ IP varchar(30) NOT NULL default '',
+ blog_id bigint(20) NOT NULL default '0',
+ date_registered datetime NOT NULL default '0000-00-00 00:00:00',
+ PRIMARY KEY (ID),
+ KEY IP (IP)
+) $charset_collate;
+CREATE TABLE $wpdb->site (
+ id bigint(20) NOT NULL auto_increment,
+ domain varchar(200) NOT NULL default '',
+ path varchar(100) NOT NULL default '',
+ PRIMARY KEY (id),
+ KEY domain (domain,path)
+) $charset_collate;
+CREATE TABLE $wpdb->sitemeta (
+ meta_id bigint(20) NOT NULL auto_increment,
+ site_id bigint(20) NOT NULL default '0',
+ meta_key varchar(255) default NULL,
+ meta_value longtext,
+ PRIMARY KEY (meta_id),
+ KEY meta_key (meta_key),
+ KEY site_id (site_id)
+) $charset_collate;
+CREATE TABLE $wpdb->signups (
+ domain varchar(200) NOT NULL default '',
+ path varchar(100) NOT NULL default '',
+ title longtext NOT NULL,
+ user_login varchar(60) NOT NULL default '',
+ user_email varchar(100) NOT NULL default '',
+ registered datetime NOT NULL default '0000-00-00 00:00:00',
+ activated datetime NOT NULL default '0000-00-00 00:00:00',
+ active tinyint(1) NOT NULL default '0',
+ activation_key varchar(50) NOT NULL default '',
+ meta longtext,
+ KEY activation_key (activation_key),
+ KEY domain (domain)
+) $charset_collate;
+";
+// now create tables
+ dbDelta( $ms_queries );
+}
+endif;
+
+/**
+ * Install global terms.
+ *
+ * @since 3.0.0
+ *
+ */
+if ( !function_exists( 'install_global_terms' ) ) :
+function install_global_terms() {
+ global $wpdb, $charset_collate;
+ $ms_queries = "
+CREATE TABLE $wpdb->sitecategories (
+ cat_ID bigint(20) NOT NULL auto_increment,
+ cat_name varchar(55) NOT NULL default '',
+ category_nicename varchar(200) NOT NULL default '',
+ last_updated timestamp NOT NULL,
+ PRIMARY KEY (cat_ID),
+ KEY category_nicename (category_nicename),
+ KEY last_updated (last_updated)
+) $charset_collate;
+";
+// now create tables
+ dbDelta( $ms_queries );
+}
+endif;
?>