wp/wp-admin/includes/upgrade.php
author ymh <ymh.work@gmail.com>
Mon, 14 Oct 2019 17:39:30 +0200
changeset 7 cf61fcea0001
parent 5 5e2f62d02dcd
child 9 177826044cd9
permissions -rw-r--r--
resynchronize code repo with production
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
 * WordPress Upgrade API
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
 *
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
     5
 * Most of the functions are pluggable and can be overwritten.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
 * @package WordPress
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
 * @subpackage Administration
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    11
/** Include user installation customization script. */
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
if ( file_exists(WP_CONTENT_DIR . '/install.php') )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
	require (WP_CONTENT_DIR . '/install.php');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
/** WordPress Administration API */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
require_once(ABSPATH . 'wp-admin/includes/admin.php');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
/** WordPress Schema API */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
require_once(ABSPATH . 'wp-admin/includes/schema.php');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
if ( !function_exists('wp_install') ) :
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
/**
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    23
 * Installs the site.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
 *
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    25
 * Runs the required functions to set up and populate the database,
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    26
 * including primary admin user and initial options.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
 * @since 2.1.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    30
 * @param string $blog_title    Site title.
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    31
 * @param string $user_name     User's username.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    32
 * @param string $user_email    User's email.
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    33
 * @param bool   $public        Whether site is public.
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    34
 * @param string $deprecated    Optional. Not used.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    35
 * @param string $user_password Optional. User's chosen password. Default empty (random password).
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    36
 * @param string $language      Optional. Language chosen. Default empty.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    37
 * @return array Array keys 'url', 'user_id', 'password', and 'password_message'.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
 */
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    39
function wp_install( $blog_title, $user_name, $user_email, $public, $deprecated = '', $user_password = '', $language = '' ) {
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
	if ( !empty( $deprecated ) )
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    41
		_deprecated_argument( __FUNCTION__, '2.6.0' );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
	wp_check_mysql_version();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
	wp_cache_flush();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
	make_db_current_silent();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
	populate_options();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
	populate_roles();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
	update_option('blogname', $blog_title);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
	update_option('admin_email', $user_email);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
	update_option('blog_public', $public);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    53
	// Freshness of site - in the future, this could get more specific about actions taken, perhaps.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    54
	update_option( 'fresh_site', 1 );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    55
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    56
	if ( $language ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    57
		update_option( 'WPLANG', $language );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    58
	}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    59
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
	$guessurl = wp_guess_url();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
	update_option('siteurl', $guessurl);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
	// If not a public blog, don't ping.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
	if ( ! $public )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
		update_option('default_pingback_flag', 0);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    68
	/*
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    69
	 * Create default user. If the user already exists, the user tables are
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    70
	 * being shared among sites. Just set the role in that case.
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    71
	 */
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
	$user_id = username_exists($user_name);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
	$user_password = trim($user_password);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
	$email_password = false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
	if ( !$user_id && empty($user_password) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
		$user_password = wp_generate_password( 12, false );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
		$message = __('<strong><em>Note that password</em></strong> carefully! It is a <em>random</em> password that was generated just for you.');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
		$user_id = wp_create_user($user_name, $user_password, $user_email);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
		update_user_option($user_id, 'default_password_nag', true, true);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
		$email_password = true;
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    81
	} elseif ( ! $user_id ) {
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
		// Password has been provided
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
		$message = '<em>'.__('Your chosen password.').'</em>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
		$user_id = wp_create_user($user_name, $user_password, $user_email);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
	} else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
		$message = __('User already exists. Password inherited.');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
	$user = new WP_User($user_id);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
	$user->set_role('administrator');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
	wp_install_defaults($user_id);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    94
	wp_install_maybe_enable_pretty_permalinks();
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    95
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
	flush_rewrite_rules();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    98
	wp_new_blog_notification($blog_title, $guessurl, $user_id, ($email_password ? $user_password : __('The password you chose during installation.') ) );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
	wp_cache_flush();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   102
	/**
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   103
	 * Fires after a site is fully installed.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   104
	 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   105
	 * @since 3.9.0
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   106
	 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   107
	 * @param WP_User $user The site owner.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   108
	 */
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   109
	do_action( 'wp_install', $user );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   110
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
	return array('url' => $guessurl, 'user_id' => $user_id, 'password' => $user_password, 'password_message' => $message);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
endif;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
if ( !function_exists('wp_install_defaults') ) :
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
/**
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   117
 * Creates the initial content for a newly-installed site.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
 *
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   119
 * Adds the default "Uncategorized" category, the first post (with comment),
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   120
 * first page, and default widgets for default theme for the current version.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
 * @since 2.1.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   124
 * @global wpdb       $wpdb
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   125
 * @global WP_Rewrite $wp_rewrite
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   126
 * @global string     $table_prefix
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   127
 *
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
 * @param int $user_id User ID.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
 */
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   130
function wp_install_defaults( $user_id ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   131
	global $wpdb, $wp_rewrite, $table_prefix;
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
	// Default category
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
	$cat_name = __('Uncategorized');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
	/* translators: Default category slug */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
	$cat_slug = sanitize_title(_x('Uncategorized', 'Default category slug'));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
	if ( global_terms_enabled() ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
		$cat_id = $wpdb->get_var( $wpdb->prepare( "SELECT cat_ID FROM {$wpdb->sitecategories} WHERE category_nicename = %s", $cat_slug ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
		if ( $cat_id == null ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
			$wpdb->insert( $wpdb->sitecategories, array('cat_ID' => 0, 'cat_name' => $cat_name, 'category_nicename' => $cat_slug, 'last_updated' => current_time('mysql', true)) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
			$cat_id = $wpdb->insert_id;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
		update_option('default_category', $cat_id);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
	} else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
		$cat_id = 1;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
	$wpdb->insert( $wpdb->terms, array('term_id' => $cat_id, 'name' => $cat_name, 'slug' => $cat_slug, 'term_group' => 0) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
	$wpdb->insert( $wpdb->term_taxonomy, array('term_id' => $cat_id, 'taxonomy' => 'category', 'description' => '', 'parent' => 0, 'count' => 1));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
	$cat_tt_id = $wpdb->insert_id;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
	// First post
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   154
	$now = current_time( 'mysql' );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   155
	$now_gmt = current_time( 'mysql', 1 );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   156
	$first_post_guid = get_option( 'home' ) . '/?p=1';
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
	if ( is_multisite() ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
		$first_post = get_site_option( 'first_post' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   161
		if ( ! $first_post ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   162
			/* translators: %s: site link */
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   163
			$first_post = __( 'Welcome to %s. This is your first post. Edit or delete it, then start blogging!' );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   164
		}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   165
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   166
		$first_post = sprintf( $first_post,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   167
			sprintf( '<a href="%s">%s</a>', esc_url( network_home_url() ), get_network()->site_name )
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   168
		);
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   169
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   170
		// Back-compat for pre-4.4
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   171
		$first_post = str_replace( 'SITE_URL', esc_url( network_home_url() ), $first_post );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   172
		$first_post = str_replace( 'SITE_NAME', get_network()->site_name, $first_post );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
	} else {
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   174
		$first_post = __( 'Welcome to WordPress. This is your first post. Edit or delete it, then start writing!' );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
	$wpdb->insert( $wpdb->posts, array(
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   178
		'post_author' => $user_id,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   179
		'post_date' => $now,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   180
		'post_date_gmt' => $now_gmt,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   181
		'post_content' => $first_post,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   182
		'post_excerpt' => '',
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   183
		'post_title' => __('Hello world!'),
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   184
		/* translators: Default post slug */
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   185
		'post_name' => sanitize_title( _x('hello-world', 'Default post slug') ),
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   186
		'post_modified' => $now,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   187
		'post_modified_gmt' => $now_gmt,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   188
		'guid' => $first_post_guid,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   189
		'comment_count' => 1,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   190
		'to_ping' => '',
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   191
		'pinged' => '',
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   192
		'post_content_filtered' => ''
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   193
	));
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
	$wpdb->insert( $wpdb->term_relationships, array('term_taxonomy_id' => $cat_tt_id, 'object_id' => 1) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
	// Default comment
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
	if ( is_multisite() ) {
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   198
		$first_comment_author = get_site_option( 'first_comment_author' );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   199
		$first_comment_email = get_site_option( 'first_comment_email' );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
		$first_comment_url = get_site_option( 'first_comment_url', network_home_url() );
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   201
		$first_comment = get_site_option( 'first_comment' );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
	}
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   203
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   204
	$first_comment_author = ! empty( $first_comment_author ) ? $first_comment_author : __( 'A WordPress Commenter' );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   205
	$first_comment_email = ! empty( $first_comment_email ) ? $first_comment_email : 'wapuu@wordpress.example';
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   206
	$first_comment_url = ! empty( $first_comment_url ) ? $first_comment_url : 'https://wordpress.org/';
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   207
	$first_comment = ! empty( $first_comment ) ? $first_comment :  __( 'Hi, this is a comment.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   208
To get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   209
Commenter avatars come from <a href="https://gravatar.com">Gravatar</a>.' );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
	$wpdb->insert( $wpdb->comments, array(
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   211
		'comment_post_ID' => 1,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   212
		'comment_author' => $first_comment_author,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   213
		'comment_author_email' => $first_comment_email,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   214
		'comment_author_url' => $first_comment_url,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   215
		'comment_date' => $now,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   216
		'comment_date_gmt' => $now_gmt,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   217
		'comment_content' => $first_comment
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   218
	));
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   219
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   220
	// First Page
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   221
	if ( is_multisite() )
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   222
		$first_page = get_site_option( 'first_page' );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   223
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   224
	$first_page = ! empty( $first_page ) ? $first_page : sprintf( __( "This is an example page. It's different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   225
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   226
<blockquote>Hi there! I'm a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like pi&#241;a coladas. (And gettin' caught in the rain.)</blockquote>
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   227
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   228
...or something like this:
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   229
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   230
<blockquote>The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.</blockquote>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   231
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   232
As a new WordPress user, you should go to <a href=\"%s\">your dashboard</a> to delete this page and create new pages for your content. Have fun!" ), admin_url() );
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   233
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   234
	$first_post_guid = get_option('home') . '/?page_id=2';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   235
	$wpdb->insert( $wpdb->posts, array(
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   236
		'post_author' => $user_id,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   237
		'post_date' => $now,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   238
		'post_date_gmt' => $now_gmt,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   239
		'post_content' => $first_page,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   240
		'post_excerpt' => '',
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   241
		'comment_status' => 'closed',
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   242
		'post_title' => __( 'Sample Page' ),
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   243
		/* translators: Default page slug */
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   244
		'post_name' => __( 'sample-page' ),
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   245
		'post_modified' => $now,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   246
		'post_modified_gmt' => $now_gmt,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   247
		'guid' => $first_post_guid,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   248
		'post_type' => 'page',
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   249
		'to_ping' => '',
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   250
		'pinged' => '',
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   251
		'post_content_filtered' => ''
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   252
	));
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   253
	$wpdb->insert( $wpdb->postmeta, array( 'post_id' => 2, 'meta_key' => '_wp_page_template', 'meta_value' => 'default' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   254
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   255
	// Privacy Policy page
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   256
	if ( is_multisite() ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   257
		// Disable by default unless the suggested content is provided.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   258
		$privacy_policy_content = get_site_option( 'default_privacy_policy_content' );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   259
	} else {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   260
		if ( ! class_exists( 'WP_Privacy_Policy_Content' ) ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   261
			include_once( ABSPATH . 'wp-admin/includes/misc.php' );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   262
		}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   263
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   264
		$privacy_policy_content = WP_Privacy_Policy_Content::get_default_content();
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   265
	}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   266
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   267
	if ( ! empty( $privacy_policy_content ) ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   268
		$privacy_policy_guid = get_option( 'home' ) . '/?page_id=3';
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   269
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   270
		$wpdb->insert(
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   271
			$wpdb->posts, array(
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   272
				'post_author'           => $user_id,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   273
				'post_date'             => $now,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   274
				'post_date_gmt'         => $now_gmt,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   275
				'post_content'          => $privacy_policy_content,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   276
				'post_excerpt'          => '',
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   277
				'comment_status'        => 'closed',
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   278
				'post_title'            => __( 'Privacy Policy' ),
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   279
				/* translators: Privacy Policy page slug */
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   280
				'post_name'             => __( 'privacy-policy' ),
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   281
				'post_modified'         => $now,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   282
				'post_modified_gmt'     => $now_gmt,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   283
				'guid'                  => $privacy_policy_guid,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   284
				'post_type'             => 'page',
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   285
				'post_status'           => 'draft',
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   286
				'to_ping'               => '',
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   287
				'pinged'                => '',
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   288
				'post_content_filtered' => '',
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   289
			)
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   290
		);
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   291
		$wpdb->insert(
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   292
			$wpdb->postmeta, array(
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   293
				'post_id'    => 3,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   294
				'meta_key'   => '_wp_page_template',
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   295
				'meta_value' => 'default',
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   296
			)
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   297
		);
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   298
		update_option( 'wp_page_for_privacy_policy', 3 );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   299
	}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   300
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   301
	// Set up default widgets for default theme.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   302
	update_option( 'widget_search', array ( 2 => array ( 'title' => '' ), '_multiwidget' => 1 ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   303
	update_option( 'widget_recent-posts', array ( 2 => array ( 'title' => '', 'number' => 5 ), '_multiwidget' => 1 ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   304
	update_option( 'widget_recent-comments', array ( 2 => array ( 'title' => '', 'number' => 5 ), '_multiwidget' => 1 ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   305
	update_option( 'widget_archives', array ( 2 => array ( 'title' => '', 'count' => 0, 'dropdown' => 0 ), '_multiwidget' => 1 ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   306
	update_option( 'widget_categories', array ( 2 => array ( 'title' => '', 'count' => 0, 'hierarchical' => 0, 'dropdown' => 0 ), '_multiwidget' => 1 ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   307
	update_option( 'widget_meta', array ( 2 => array ( 'title' => '' ), '_multiwidget' => 1 ) );
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   308
	update_option( 'sidebars_widgets', array( 'wp_inactive_widgets' => array(), 'sidebar-1' => array( 0 => 'search-2', 1 => 'recent-posts-2', 2 => 'recent-comments-2', 3 => 'archives-2', 4 => 'categories-2', 5 => 'meta-2' ), 'sidebar-2' => array(), 'sidebar-3' => array(), 'array_version' => 3 ) );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   309
	if ( ! is_multisite() )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   310
		update_user_meta( $user_id, 'show_welcome_panel', 1 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   311
	elseif ( ! is_super_admin( $user_id ) && ! metadata_exists( 'user', $user_id, 'show_welcome_panel' ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   312
		update_user_meta( $user_id, 'show_welcome_panel', 2 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   313
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   314
	if ( is_multisite() ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   315
		// Flush rules to pick up the new page.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   316
		$wp_rewrite->init();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   317
		$wp_rewrite->flush_rules();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   318
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   319
		$user = new WP_User($user_id);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   320
		$wpdb->update( $wpdb->options, array('option_value' => $user->user_email), array('option_name' => 'admin_email') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   321
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   322
		// Remove all perms except for the login user.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   323
		$wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->usermeta WHERE user_id != %d AND meta_key = %s", $user_id, $table_prefix.'user_level') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   324
		$wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->usermeta WHERE user_id != %d AND meta_key = %s", $user_id, $table_prefix.'capabilities') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   325
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   326
		// Delete any caps that snuck into the previously active blog. (Hardcoded to blog 1 for now.) TODO: Get previous_blog_id.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   327
		if ( !is_super_admin( $user_id ) && $user_id != 1 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   328
			$wpdb->delete( $wpdb->usermeta, array( 'user_id' => $user_id , 'meta_key' => $wpdb->base_prefix.'1_capabilities' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   329
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   330
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   331
endif;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   332
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   333
/**
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   334
 * Maybe enable pretty permalinks on installation.
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   335
 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   336
 * If after enabling pretty permalinks don't work, fallback to query-string permalinks.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   337
 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   338
 * @since 4.2.0
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   339
 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   340
 * @global WP_Rewrite $wp_rewrite WordPress rewrite component.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   341
 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   342
 * @return bool Whether pretty permalinks are enabled. False otherwise.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   343
 */
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   344
function wp_install_maybe_enable_pretty_permalinks() {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   345
	global $wp_rewrite;
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   346
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   347
	// Bail if a permalink structure is already enabled.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   348
	if ( get_option( 'permalink_structure' ) ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   349
		return true;
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   350
	}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   351
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   352
	/*
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   353
	 * The Permalink structures to attempt.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   354
	 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   355
	 * The first is designed for mod_rewrite or nginx rewriting.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   356
	 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   357
	 * The second is PATHINFO-based permalinks for web server configurations
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   358
	 * without a true rewrite module enabled.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   359
	 */
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   360
	$permalink_structures = array(
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   361
		'/%year%/%monthnum%/%day%/%postname%/',
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   362
		'/index.php/%year%/%monthnum%/%day%/%postname%/'
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   363
	);
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   364
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   365
	foreach ( (array) $permalink_structures as $permalink_structure ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   366
		$wp_rewrite->set_permalink_structure( $permalink_structure );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   367
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   368
		/*
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   369
	 	 * Flush rules with the hard option to force refresh of the web-server's
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   370
	 	 * rewrite config file (e.g. .htaccess or web.config).
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   371
	 	 */
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   372
		$wp_rewrite->flush_rules( true );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   373
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   374
		$test_url = '';
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   375
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   376
		// Test against a real WordPress Post
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   377
		$first_post = get_page_by_path( sanitize_title( _x( 'hello-world', 'Default post slug' ) ), OBJECT, 'post' );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   378
		if ( $first_post ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   379
			$test_url = get_permalink( $first_post->ID );
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   380
		}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   381
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   382
		/*
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   383
	 	 * Send a request to the site, and check whether
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   384
	 	 * the 'x-pingback' header is returned as expected.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   385
	 	 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   386
	 	 * Uses wp_remote_get() instead of wp_remote_head() because web servers
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   387
	 	 * can block head requests.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   388
	 	 */
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   389
		$response          = wp_remote_get( $test_url, array( 'timeout' => 5 ) );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   390
		$x_pingback_header = wp_remote_retrieve_header( $response, 'x-pingback' );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   391
		$pretty_permalinks = $x_pingback_header && $x_pingback_header === get_bloginfo( 'pingback_url' );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   392
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   393
		if ( $pretty_permalinks ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   394
			return true;
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   395
		}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   396
	}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   397
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   398
	/*
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   399
	 * If it makes it this far, pretty permalinks failed.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   400
	 * Fallback to query-string permalinks.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   401
	 */
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   402
	$wp_rewrite->set_permalink_structure( '' );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   403
	$wp_rewrite->flush_rules( true );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   404
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   405
	return false;
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   406
}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   407
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   408
if ( !function_exists('wp_new_blog_notification') ) :
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   409
/**
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   410
 * Notifies the site admin that the setup is complete.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   411
 *
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   412
 * Sends an email with wp_mail to the new administrator that the site setup is complete,
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   413
 * and provides them with a record of their login credentials.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   414
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   415
 * @since 2.1.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   416
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   417
 * @param string $blog_title Site title.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   418
 * @param string $blog_url   Site url.
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   419
 * @param int    $user_id    User ID.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   420
 * @param string $password   User's Password.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   421
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   422
function wp_new_blog_notification($blog_title, $blog_url, $user_id, $password) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   423
	$user = new WP_User( $user_id );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   424
	$email = $user->user_email;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   425
	$name = $user->user_login;
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   426
	$login_url = wp_login_url();
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   427
	/* translators: New site notification email. 1: New site URL, 2: User login, 3: User password or password reset link, 4: Login URL */
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   428
	$message = sprintf( __( "Your new WordPress site has been successfully set up at:
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   429
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   430
%1\$s
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   431
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   432
You can log in to the administrator account with the following information:
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   433
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   434
Username: %2\$s
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   435
Password: %3\$s
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   436
Log in here: %4\$s
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   437
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   438
We hope you enjoy your new site. Thanks!
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   439
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   440
--The WordPress Team
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   441
https://wordpress.org/
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   442
"), $blog_url, $name, $password, $login_url );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   443
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   444
	@wp_mail($email, __('New WordPress Site'), $message);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   445
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   446
endif;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   447
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   448
if ( !function_exists('wp_upgrade') ) :
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   449
/**
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   450
 * Runs WordPress Upgrade functions.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   451
 *
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   452
 * Upgrades the database if needed during a site update.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   453
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   454
 * @since 2.1.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   455
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   456
 * @global int  $wp_current_db_version
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   457
 * @global int  $wp_db_version
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   458
 * @global wpdb $wpdb WordPress database abstraction object.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   459
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   460
function wp_upgrade() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   461
	global $wp_current_db_version, $wp_db_version, $wpdb;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   462
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   463
	$wp_current_db_version = __get_option('db_version');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   464
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   465
	// We are up-to-date. Nothing to do.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   466
	if ( $wp_db_version == $wp_current_db_version )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   467
		return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   468
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   469
	if ( ! is_blog_installed() )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   470
		return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   471
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   472
	wp_check_mysql_version();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   473
	wp_cache_flush();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   474
	pre_schema_upgrade();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   475
	make_db_current_silent();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   476
	upgrade_all();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   477
	if ( is_multisite() && is_main_site() )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   478
		upgrade_network();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   479
	wp_cache_flush();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   480
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   481
	if ( is_multisite() ) {
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   482
		$site_id = get_current_blog_id();
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   483
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   484
		if ( $wpdb->get_row( $wpdb->prepare( "SELECT blog_id FROM {$wpdb->blog_versions} WHERE blog_id = %d", $site_id ) ) ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   485
			$wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->blog_versions} SET db_version = %d WHERE blog_id = %d", $wp_db_version, $site_id ) );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   486
		} else {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   487
			$wpdb->query( $wpdb->prepare( "INSERT INTO {$wpdb->blog_versions} ( `blog_id` , `db_version` , `last_updated` ) VALUES ( %d, %d, NOW() );", $site_id, $wp_db_version ) );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   488
		}
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   489
	}
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   490
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   491
	/**
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   492
	 * Fires after a site is fully upgraded.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   493
	 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   494
	 * @since 3.9.0
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   495
	 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   496
	 * @param int $wp_db_version         The new $wp_db_version.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   497
	 * @param int $wp_current_db_version The old (current) $wp_db_version.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   498
	 */
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   499
	do_action( 'wp_upgrade', $wp_db_version, $wp_current_db_version );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   500
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   501
endif;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   502
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   503
/**
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   504
 * Functions to be called in installation and upgrade scripts.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   505
 *
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   506
 * Contains conditional checks to determine which upgrade scripts to run,
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   507
 * based on database version and WP version being updated-to.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   508
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   509
 * @ignore
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   510
 * @since 1.0.1
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   511
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   512
 * @global int $wp_current_db_version
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   513
 * @global int $wp_db_version
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   514
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   515
function upgrade_all() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   516
	global $wp_current_db_version, $wp_db_version;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   517
	$wp_current_db_version = __get_option('db_version');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   518
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   519
	// We are up-to-date. Nothing to do.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   520
	if ( $wp_db_version == $wp_current_db_version )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   521
		return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   522
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   523
	// If the version is not set in the DB, try to guess the version.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   524
	if ( empty($wp_current_db_version) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   525
		$wp_current_db_version = 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   526
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   527
		// If the template option exists, we have 1.5.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   528
		$template = __get_option('template');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   529
		if ( !empty($template) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   530
			$wp_current_db_version = 2541;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   531
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   532
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   533
	if ( $wp_current_db_version < 6039 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   534
		upgrade_230_options_table();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   535
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   536
	populate_options();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   537
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   538
	if ( $wp_current_db_version < 2541 ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   539
		upgrade_100();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   540
		upgrade_101();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   541
		upgrade_110();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   542
		upgrade_130();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   543
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   544
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   545
	if ( $wp_current_db_version < 3308 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   546
		upgrade_160();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   547
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   548
	if ( $wp_current_db_version < 4772 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   549
		upgrade_210();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   550
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   551
	if ( $wp_current_db_version < 4351 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   552
		upgrade_old_slugs();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   553
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   554
	if ( $wp_current_db_version < 5539 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   555
		upgrade_230();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   556
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   557
	if ( $wp_current_db_version < 6124 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   558
		upgrade_230_old_tables();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   559
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   560
	if ( $wp_current_db_version < 7499 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   561
		upgrade_250();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   562
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   563
	if ( $wp_current_db_version < 7935 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   564
		upgrade_252();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   565
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   566
	if ( $wp_current_db_version < 8201 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   567
		upgrade_260();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   568
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   569
	if ( $wp_current_db_version < 8989 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   570
		upgrade_270();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   571
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   572
	if ( $wp_current_db_version < 10360 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   573
		upgrade_280();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   574
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   575
	if ( $wp_current_db_version < 11958 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   576
		upgrade_290();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   577
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   578
	if ( $wp_current_db_version < 15260 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   579
		upgrade_300();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   580
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   581
	if ( $wp_current_db_version < 19389 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   582
		upgrade_330();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   583
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   584
	if ( $wp_current_db_version < 20080 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   585
		upgrade_340();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   586
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   587
	if ( $wp_current_db_version < 22422 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   588
		upgrade_350();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   589
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   590
	if ( $wp_current_db_version < 25824 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   591
		upgrade_370();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   592
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   593
	if ( $wp_current_db_version < 26148 )
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   594
		upgrade_372();
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   595
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   596
	if ( $wp_current_db_version < 26691 )
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   597
		upgrade_380();
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   598
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   599
	if ( $wp_current_db_version < 29630 )
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   600
		upgrade_400();
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   601
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   602
	if ( $wp_current_db_version < 33055 )
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   603
		upgrade_430();
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   604
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   605
	if ( $wp_current_db_version < 33056 )
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   606
		upgrade_431();
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   607
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   608
	if ( $wp_current_db_version < 35700 )
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   609
		upgrade_440();
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   610
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   611
	if ( $wp_current_db_version < 36686 )
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   612
		upgrade_450();
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   613
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   614
	if ( $wp_current_db_version < 37965 )
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   615
		upgrade_460();
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   616
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   617
	maybe_disable_link_manager();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   618
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   619
	maybe_disable_automattic_widgets();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   620
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   621
	update_option( 'db_version', $wp_db_version );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   622
	update_option( 'db_upgraded', true );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   623
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   624
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   625
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   626
 * Execute changes made in WordPress 1.0.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   627
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   628
 * @ignore
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   629
 * @since 1.0.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   630
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   631
 * @global wpdb $wpdb WordPress database abstraction object.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   632
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   633
function upgrade_100() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   634
	global $wpdb;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   635
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   636
	// Get the title and ID of every post, post_name to check if it already has a value
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   637
	$posts = $wpdb->get_results("SELECT ID, post_title, post_name FROM $wpdb->posts WHERE post_name = ''");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   638
	if ($posts) {
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   639
		foreach ($posts as $post) {
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   640
			if ('' == $post->post_name) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   641
				$newtitle = sanitize_title($post->post_title);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   642
				$wpdb->query( $wpdb->prepare("UPDATE $wpdb->posts SET post_name = %s WHERE ID = %d", $newtitle, $post->ID) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   643
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   644
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   645
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   646
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   647
	$categories = $wpdb->get_results("SELECT cat_ID, cat_name, category_nicename FROM $wpdb->categories");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   648
	foreach ($categories as $category) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   649
		if ('' == $category->category_nicename) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   650
			$newtitle = sanitize_title($category->cat_name);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   651
			$wpdb->update( $wpdb->categories, array('category_nicename' => $newtitle), array('cat_ID' => $category->cat_ID) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   652
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   653
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   654
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   655
	$sql = "UPDATE $wpdb->options
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   656
		SET option_value = REPLACE(option_value, 'wp-links/links-images/', 'wp-images/links/')
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   657
		WHERE option_name LIKE %s
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   658
		AND option_value LIKE %s";
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   659
	$wpdb->query( $wpdb->prepare( $sql, $wpdb->esc_like( 'links_rating_image' ) . '%', $wpdb->esc_like( 'wp-links/links-images/' ) . '%' ) );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   660
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   661
	$done_ids = $wpdb->get_results("SELECT DISTINCT post_id FROM $wpdb->post2cat");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   662
	if ($done_ids) :
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   663
		$done_posts = array();
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   664
		foreach ($done_ids as $done_id) :
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   665
			$done_posts[] = $done_id->post_id;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   666
		endforeach;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   667
		$catwhere = ' AND ID NOT IN (' . implode(',', $done_posts) . ')';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   668
	else:
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   669
		$catwhere = '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   670
	endif;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   671
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   672
	$allposts = $wpdb->get_results("SELECT ID, post_category FROM $wpdb->posts WHERE post_category != '0' $catwhere");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   673
	if ($allposts) :
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   674
		foreach ($allposts as $post) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   675
			// Check to see if it's already been imported
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   676
			$cat = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->post2cat WHERE post_id = %d AND category_id = %d", $post->ID, $post->post_category) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   677
			if (!$cat && 0 != $post->post_category) { // If there's no result
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   678
				$wpdb->insert( $wpdb->post2cat, array('post_id' => $post->ID, 'category_id' => $post->post_category) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   679
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   680
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   681
	endif;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   682
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   683
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   684
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   685
 * Execute changes made in WordPress 1.0.1.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   686
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   687
 * @ignore
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   688
 * @since 1.0.1
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   689
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   690
 * @global wpdb $wpdb WordPress database abstraction object.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   691
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   692
function upgrade_101() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   693
	global $wpdb;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   694
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   695
	// Clean up indices, add a few
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   696
	add_clean_index($wpdb->posts, 'post_name');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   697
	add_clean_index($wpdb->posts, 'post_status');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   698
	add_clean_index($wpdb->categories, 'category_nicename');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   699
	add_clean_index($wpdb->comments, 'comment_approved');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   700
	add_clean_index($wpdb->comments, 'comment_post_ID');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   701
	add_clean_index($wpdb->links , 'link_category');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   702
	add_clean_index($wpdb->links , 'link_visible');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   703
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   704
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   705
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   706
 * Execute changes made in WordPress 1.2.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   707
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   708
 * @ignore
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   709
 * @since 1.2.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   710
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   711
 * @global wpdb $wpdb WordPress database abstraction object.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   712
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   713
function upgrade_110() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   714
	global $wpdb;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   715
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   716
	// Set user_nicename.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   717
	$users = $wpdb->get_results("SELECT ID, user_nickname, user_nicename FROM $wpdb->users");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   718
	foreach ($users as $user) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   719
		if ('' == $user->user_nicename) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   720
			$newname = sanitize_title($user->user_nickname);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   721
			$wpdb->update( $wpdb->users, array('user_nicename' => $newname), array('ID' => $user->ID) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   722
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   723
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   724
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   725
	$users = $wpdb->get_results("SELECT ID, user_pass from $wpdb->users");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   726
	foreach ($users as $row) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   727
		if (!preg_match('/^[A-Fa-f0-9]{32}$/', $row->user_pass)) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   728
			$wpdb->update( $wpdb->users, array('user_pass' => md5($row->user_pass)), array('ID' => $row->ID) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   729
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   730
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   731
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   732
	// Get the GMT offset, we'll use that later on
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   733
	$all_options = get_alloptions_110();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   734
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   735
	$time_difference = $all_options->time_difference;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   736
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   737
		$server_time = time()+date('Z');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   738
	$weblogger_time = $server_time + $time_difference * HOUR_IN_SECONDS;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   739
	$gmt_time = time();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   740
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   741
	$diff_gmt_server = ($gmt_time - $server_time) / HOUR_IN_SECONDS;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   742
	$diff_weblogger_server = ($weblogger_time - $server_time) / HOUR_IN_SECONDS;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   743
	$diff_gmt_weblogger = $diff_gmt_server - $diff_weblogger_server;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   744
	$gmt_offset = -$diff_gmt_weblogger;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   745
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   746
	// Add a gmt_offset option, with value $gmt_offset
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   747
	add_option('gmt_offset', $gmt_offset);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   748
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   749
	// Check if we already set the GMT fields (if we did, then
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   750
	// MAX(post_date_gmt) can't be '0000-00-00 00:00:00'
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   751
	// <michel_v> I just slapped myself silly for not thinking about it earlier
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   752
	$got_gmt_fields = ! ($wpdb->get_var("SELECT MAX(post_date_gmt) FROM $wpdb->posts") == '0000-00-00 00:00:00');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   753
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   754
	if (!$got_gmt_fields) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   755
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   756
		// Add or subtract time to all dates, to get GMT dates
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   757
		$add_hours = intval($diff_gmt_weblogger);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   758
		$add_minutes = intval(60 * ($diff_gmt_weblogger - $add_hours));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   759
		$wpdb->query("UPDATE $wpdb->posts SET post_date_gmt = DATE_ADD(post_date, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   760
		$wpdb->query("UPDATE $wpdb->posts SET post_modified = post_date");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   761
		$wpdb->query("UPDATE $wpdb->posts SET post_modified_gmt = DATE_ADD(post_modified, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE) WHERE post_modified != '0000-00-00 00:00:00'");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   762
		$wpdb->query("UPDATE $wpdb->comments SET comment_date_gmt = DATE_ADD(comment_date, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   763
		$wpdb->query("UPDATE $wpdb->users SET user_registered = DATE_ADD(user_registered, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   764
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   765
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   766
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   767
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   768
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   769
 * Execute changes made in WordPress 1.5.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   770
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   771
 * @ignore
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   772
 * @since 1.5.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   773
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   774
 * @global wpdb $wpdb WordPress database abstraction object.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   775
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   776
function upgrade_130() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   777
	global $wpdb;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   778
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   779
	// Remove extraneous backslashes.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   780
	$posts = $wpdb->get_results("SELECT ID, post_title, post_content, post_excerpt, guid, post_date, post_name, post_status, post_author FROM $wpdb->posts");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   781
	if ($posts) {
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   782
		foreach ($posts as $post) {
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   783
			$post_content = addslashes(deslash($post->post_content));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   784
			$post_title = addslashes(deslash($post->post_title));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   785
			$post_excerpt = addslashes(deslash($post->post_excerpt));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   786
			if ( empty($post->guid) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   787
				$guid = get_permalink($post->ID);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   788
			else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   789
				$guid = $post->guid;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   790
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   791
			$wpdb->update( $wpdb->posts, compact('post_title', 'post_content', 'post_excerpt', 'guid'), array('ID' => $post->ID) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   792
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   793
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   794
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   795
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   796
	// Remove extraneous backslashes.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   797
	$comments = $wpdb->get_results("SELECT comment_ID, comment_author, comment_content FROM $wpdb->comments");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   798
	if ($comments) {
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   799
		foreach ($comments as $comment) {
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   800
			$comment_content = deslash($comment->comment_content);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   801
			$comment_author = deslash($comment->comment_author);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   802
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   803
			$wpdb->update($wpdb->comments, compact('comment_content', 'comment_author'), array('comment_ID' => $comment->comment_ID) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   804
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   805
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   806
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   807
	// Remove extraneous backslashes.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   808
	$links = $wpdb->get_results("SELECT link_id, link_name, link_description FROM $wpdb->links");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   809
	if ($links) {
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   810
		foreach ($links as $link) {
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   811
			$link_name = deslash($link->link_name);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   812
			$link_description = deslash($link->link_description);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   813
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   814
			$wpdb->update( $wpdb->links, compact('link_name', 'link_description'), array('link_id' => $link->link_id) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   815
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   816
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   817
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   818
	$active_plugins = __get_option('active_plugins');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   819
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   820
	/*
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   821
	 * If plugins are not stored in an array, they're stored in the old
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   822
	 * newline separated format. Convert to new format.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   823
	 */
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   824
	if ( !is_array( $active_plugins ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   825
		$active_plugins = explode("\n", trim($active_plugins));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   826
		update_option('active_plugins', $active_plugins);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   827
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   828
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   829
	// Obsolete tables
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   830
	$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'optionvalues');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   831
	$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'optiontypes');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   832
	$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'optiongroups');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   833
	$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'optiongroup_options');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   834
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   835
	// Update comments table to use comment_type
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   836
	$wpdb->query("UPDATE $wpdb->comments SET comment_type='trackback', comment_content = REPLACE(comment_content, '<trackback />', '') WHERE comment_content LIKE '<trackback />%'");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   837
	$wpdb->query("UPDATE $wpdb->comments SET comment_type='pingback', comment_content = REPLACE(comment_content, '<pingback />', '') WHERE comment_content LIKE '<pingback />%'");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   838
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   839
	// Some versions have multiple duplicate option_name rows with the same values
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   840
	$options = $wpdb->get_results("SELECT option_name, COUNT(option_name) AS dupes FROM `$wpdb->options` GROUP BY option_name");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   841
	foreach ( $options as $option ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   842
		if ( 1 != $option->dupes ) { // Could this be done in the query?
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   843
			$limit = $option->dupes - 1;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   844
			$dupe_ids = $wpdb->get_col( $wpdb->prepare("SELECT option_id FROM $wpdb->options WHERE option_name = %s LIMIT %d", $option->option_name, $limit) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   845
			if ( $dupe_ids ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   846
				$dupe_ids = join($dupe_ids, ',');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   847
				$wpdb->query("DELETE FROM $wpdb->options WHERE option_id IN ($dupe_ids)");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   848
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   849
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   850
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   851
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   852
	make_site_theme();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   853
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   854
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   855
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   856
 * Execute changes made in WordPress 2.0.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   857
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   858
 * @ignore
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   859
 * @since 2.0.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   860
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   861
 * @global wpdb $wpdb WordPress database abstraction object.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   862
 * @global int  $wp_current_db_version
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   863
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   864
function upgrade_160() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   865
	global $wpdb, $wp_current_db_version;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   866
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   867
	populate_roles_160();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   868
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   869
	$users = $wpdb->get_results("SELECT * FROM $wpdb->users");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   870
	foreach ( $users as $user ) :
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   871
		if ( !empty( $user->user_firstname ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   872
			update_user_meta( $user->ID, 'first_name', wp_slash($user->user_firstname) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   873
		if ( !empty( $user->user_lastname ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   874
			update_user_meta( $user->ID, 'last_name', wp_slash($user->user_lastname) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   875
		if ( !empty( $user->user_nickname ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   876
			update_user_meta( $user->ID, 'nickname', wp_slash($user->user_nickname) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   877
		if ( !empty( $user->user_level ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   878
			update_user_meta( $user->ID, $wpdb->prefix . 'user_level', $user->user_level );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   879
		if ( !empty( $user->user_icq ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   880
			update_user_meta( $user->ID, 'icq', wp_slash($user->user_icq) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   881
		if ( !empty( $user->user_aim ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   882
			update_user_meta( $user->ID, 'aim', wp_slash($user->user_aim) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   883
		if ( !empty( $user->user_msn ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   884
			update_user_meta( $user->ID, 'msn', wp_slash($user->user_msn) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   885
		if ( !empty( $user->user_yim ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   886
			update_user_meta( $user->ID, 'yim', wp_slash($user->user_icq) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   887
		if ( !empty( $user->user_description ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   888
			update_user_meta( $user->ID, 'description', wp_slash($user->user_description) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   889
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   890
		if ( isset( $user->user_idmode ) ):
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   891
			$idmode = $user->user_idmode;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   892
			if ($idmode == 'nickname') $id = $user->user_nickname;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   893
			if ($idmode == 'login') $id = $user->user_login;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   894
			if ($idmode == 'firstname') $id = $user->user_firstname;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   895
			if ($idmode == 'lastname') $id = $user->user_lastname;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   896
			if ($idmode == 'namefl') $id = $user->user_firstname.' '.$user->user_lastname;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   897
			if ($idmode == 'namelf') $id = $user->user_lastname.' '.$user->user_firstname;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   898
			if (!$idmode) $id = $user->user_nickname;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   899
			$wpdb->update( $wpdb->users, array('display_name' => $id), array('ID' => $user->ID) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   900
		endif;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   901
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   902
		// FIXME: RESET_CAPS is temporary code to reset roles and caps if flag is set.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   903
		$caps = get_user_meta( $user->ID, $wpdb->prefix . 'capabilities');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   904
		if ( empty($caps) || defined('RESET_CAPS') ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   905
			$level = get_user_meta($user->ID, $wpdb->prefix . 'user_level', true);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   906
			$role = translate_level_to_role($level);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   907
			update_user_meta( $user->ID, $wpdb->prefix . 'capabilities', array($role => true) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   908
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   909
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   910
	endforeach;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   911
	$old_user_fields = array( 'user_firstname', 'user_lastname', 'user_icq', 'user_aim', 'user_msn', 'user_yim', 'user_idmode', 'user_ip', 'user_domain', 'user_browser', 'user_description', 'user_nickname', 'user_level' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   912
	$wpdb->hide_errors();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   913
	foreach ( $old_user_fields as $old )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   914
		$wpdb->query("ALTER TABLE $wpdb->users DROP $old");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   915
	$wpdb->show_errors();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   916
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   917
	// Populate comment_count field of posts table.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   918
	$comments = $wpdb->get_results( "SELECT comment_post_ID, COUNT(*) as c FROM $wpdb->comments WHERE comment_approved = '1' GROUP BY comment_post_ID" );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   919
	if ( is_array( $comments ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   920
		foreach ($comments as $comment)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   921
			$wpdb->update( $wpdb->posts, array('comment_count' => $comment->c), array('ID' => $comment->comment_post_ID) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   922
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   923
	/*
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   924
	 * Some alpha versions used a post status of object instead of attachment
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   925
	 * and put the mime type in post_type instead of post_mime_type.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   926
	 */
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   927
	if ( $wp_current_db_version > 2541 && $wp_current_db_version <= 3091 ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   928
		$objects = $wpdb->get_results("SELECT ID, post_type FROM $wpdb->posts WHERE post_status = 'object'");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   929
		foreach ($objects as $object) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   930
			$wpdb->update( $wpdb->posts, array(	'post_status' => 'attachment',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   931
												'post_mime_type' => $object->post_type,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   932
												'post_type' => ''),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   933
										 array( 'ID' => $object->ID ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   934
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   935
			$meta = get_post_meta($object->ID, 'imagedata', true);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   936
			if ( ! empty($meta['file']) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   937
				update_attached_file( $object->ID, $meta['file'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   938
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   939
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   940
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   941
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   942
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   943
 * Execute changes made in WordPress 2.1.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   944
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   945
 * @ignore
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   946
 * @since 2.1.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   947
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   948
 * @global wpdb $wpdb WordPress database abstraction object.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   949
 * @global int  $wp_current_db_version
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   950
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   951
function upgrade_210() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   952
	global $wpdb, $wp_current_db_version;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   953
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   954
	if ( $wp_current_db_version < 3506 ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   955
		// Update status and type.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   956
		$posts = $wpdb->get_results("SELECT ID, post_status FROM $wpdb->posts");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   957
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   958
		if ( ! empty($posts) ) foreach ($posts as $post) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   959
			$status = $post->post_status;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   960
			$type = 'post';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   961
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   962
			if ( 'static' == $status ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   963
				$status = 'publish';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   964
				$type = 'page';
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   965
			} elseif ( 'attachment' == $status ) {
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   966
				$status = 'inherit';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   967
				$type = 'attachment';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   968
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   969
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   970
			$wpdb->query( $wpdb->prepare("UPDATE $wpdb->posts SET post_status = %s, post_type = %s WHERE ID = %d", $status, $type, $post->ID) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   971
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   972
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   973
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   974
	if ( $wp_current_db_version < 3845 ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   975
		populate_roles_210();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   976
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   977
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   978
	if ( $wp_current_db_version < 3531 ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   979
		// Give future posts a post_status of future.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   980
		$now = gmdate('Y-m-d H:i:59');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   981
		$wpdb->query ("UPDATE $wpdb->posts SET post_status = 'future' WHERE post_status = 'publish' AND post_date_gmt > '$now'");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   982
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   983
		$posts = $wpdb->get_results("SELECT ID, post_date FROM $wpdb->posts WHERE post_status ='future'");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   984
		if ( !empty($posts) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   985
			foreach ( $posts as $post )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   986
				wp_schedule_single_event(mysql2date('U', $post->post_date, false), 'publish_future_post', array($post->ID));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   987
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   988
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   989
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   990
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   991
 * Execute changes made in WordPress 2.3.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   992
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   993
 * @ignore
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   994
 * @since 2.3.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   995
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   996
 * @global wpdb $wpdb WordPress database abstraction object.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   997
 * @global int  $wp_current_db_version
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   998
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   999
function upgrade_230() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1000
	global $wp_current_db_version, $wpdb;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1001
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1002
	if ( $wp_current_db_version < 5200 ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1003
		populate_roles_230();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1004
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1005
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1006
	// Convert categories to terms.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1007
	$tt_ids = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1008
	$have_tags = false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1009
	$categories = $wpdb->get_results("SELECT * FROM $wpdb->categories ORDER BY cat_ID");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1010
	foreach ($categories as $category) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1011
		$term_id = (int) $category->cat_ID;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1012
		$name = $category->cat_name;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1013
		$description = $category->category_description;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1014
		$slug = $category->category_nicename;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1015
		$parent = $category->category_parent;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1016
		$term_group = 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1017
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1018
		// Associate terms with the same slug in a term group and make slugs unique.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1019
		if ( $exists = $wpdb->get_results( $wpdb->prepare("SELECT term_id, term_group FROM $wpdb->terms WHERE slug = %s", $slug) ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1020
			$term_group = $exists[0]->term_group;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1021
			$id = $exists[0]->term_id;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1022
			$num = 2;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1023
			do {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1024
				$alt_slug = $slug . "-$num";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1025
				$num++;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1026
				$slug_check = $wpdb->get_var( $wpdb->prepare("SELECT slug FROM $wpdb->terms WHERE slug = %s", $alt_slug) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1027
			} while ( $slug_check );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1028
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1029
			$slug = $alt_slug;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1030
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1031
			if ( empty( $term_group ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1032
				$term_group = $wpdb->get_var("SELECT MAX(term_group) FROM $wpdb->terms GROUP BY term_group") + 1;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1033
				$wpdb->query( $wpdb->prepare("UPDATE $wpdb->terms SET term_group = %d WHERE term_id = %d", $term_group, $id) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1034
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1035
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1036
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1037
		$wpdb->query( $wpdb->prepare("INSERT INTO $wpdb->terms (term_id, name, slug, term_group) VALUES
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1038
		(%d, %s, %s, %d)", $term_id, $name, $slug, $term_group) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1039
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1040
		$count = 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1041
		if ( !empty($category->category_count) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1042
			$count = (int) $category->category_count;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1043
			$taxonomy = 'category';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1044
			$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) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1045
			$tt_ids[$term_id][$taxonomy] = (int) $wpdb->insert_id;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1046
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1047
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1048
		if ( !empty($category->link_count) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1049
			$count = (int) $category->link_count;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1050
			$taxonomy = 'link_category';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1051
			$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) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1052
			$tt_ids[$term_id][$taxonomy] = (int) $wpdb->insert_id;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1053
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1054
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1055
		if ( !empty($category->tag_count) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1056
			$have_tags = true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1057
			$count = (int) $category->tag_count;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1058
			$taxonomy = 'post_tag';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1059
			$wpdb->insert( $wpdb->term_taxonomy, compact('term_id', 'taxonomy', 'description', 'parent', 'count') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1060
			$tt_ids[$term_id][$taxonomy] = (int) $wpdb->insert_id;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1061
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1062
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1063
		if ( empty($count) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1064
			$count = 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1065
			$taxonomy = 'category';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1066
			$wpdb->insert( $wpdb->term_taxonomy, compact('term_id', 'taxonomy', 'description', 'parent', 'count') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1067
			$tt_ids[$term_id][$taxonomy] = (int) $wpdb->insert_id;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1068
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1069
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1070
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1071
	$select = 'post_id, category_id';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1072
	if ( $have_tags )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1073
		$select .= ', rel_type';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1074
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1075
	$posts = $wpdb->get_results("SELECT $select FROM $wpdb->post2cat GROUP BY post_id, category_id");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1076
	foreach ( $posts as $post ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1077
		$post_id = (int) $post->post_id;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1078
		$term_id = (int) $post->category_id;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1079
		$taxonomy = 'category';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1080
		if ( !empty($post->rel_type) && 'tag' == $post->rel_type)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1081
			$taxonomy = 'tag';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1082
		$tt_id = $tt_ids[$term_id][$taxonomy];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1083
		if ( empty($tt_id) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1084
			continue;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1085
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1086
		$wpdb->insert( $wpdb->term_relationships, array('object_id' => $post_id, 'term_taxonomy_id' => $tt_id) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1087
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1088
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1089
	// < 3570 we used linkcategories. >= 3570 we used categories and link2cat.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1090
	if ( $wp_current_db_version < 3570 ) {
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1091
		/*
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1092
		 * Create link_category terms for link categories. Create a map of link
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1093
		 * cat IDs to link_category terms.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1094
		 */
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1095
		$link_cat_id_map = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1096
		$default_link_cat = 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1097
		$tt_ids = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1098
		$link_cats = $wpdb->get_results("SELECT cat_id, cat_name FROM " . $wpdb->prefix . 'linkcategories');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1099
		foreach ( $link_cats as $category) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1100
			$cat_id = (int) $category->cat_id;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1101
			$term_id = 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1102
			$name = wp_slash($category->cat_name);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1103
			$slug = sanitize_title($name);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1104
			$term_group = 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1105
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1106
			// Associate terms with the same slug in a term group and make slugs unique.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1107
			if ( $exists = $wpdb->get_results( $wpdb->prepare("SELECT term_id, term_group FROM $wpdb->terms WHERE slug = %s", $slug) ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1108
				$term_group = $exists[0]->term_group;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1109
				$term_id = $exists[0]->term_id;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1110
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1111
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1112
			if ( empty($term_id) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1113
				$wpdb->insert( $wpdb->terms, compact('name', 'slug', 'term_group') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1114
				$term_id = (int) $wpdb->insert_id;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1115
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1116
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1117
			$link_cat_id_map[$cat_id] = $term_id;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1118
			$default_link_cat = $term_id;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1119
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1120
			$wpdb->insert( $wpdb->term_taxonomy, array('term_id' => $term_id, 'taxonomy' => 'link_category', 'description' => '', 'parent' => 0, 'count' => 0) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1121
			$tt_ids[$term_id] = (int) $wpdb->insert_id;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1122
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1123
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1124
		// Associate links to cats.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1125
		$links = $wpdb->get_results("SELECT link_id, link_category FROM $wpdb->links");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1126
		if ( !empty($links) ) foreach ( $links as $link ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1127
			if ( 0 == $link->link_category )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1128
				continue;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1129
			if ( ! isset($link_cat_id_map[$link->link_category]) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1130
				continue;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1131
			$term_id = $link_cat_id_map[$link->link_category];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1132
			$tt_id = $tt_ids[$term_id];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1133
			if ( empty($tt_id) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1134
				continue;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1135
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1136
			$wpdb->insert( $wpdb->term_relationships, array('object_id' => $link->link_id, 'term_taxonomy_id' => $tt_id) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1137
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1138
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1139
		// Set default to the last category we grabbed during the upgrade loop.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1140
		update_option('default_link_category', $default_link_cat);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1141
	} else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1142
		$links = $wpdb->get_results("SELECT link_id, category_id FROM $wpdb->link2cat GROUP BY link_id, category_id");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1143
		foreach ( $links as $link ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1144
			$link_id = (int) $link->link_id;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1145
			$term_id = (int) $link->category_id;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1146
			$taxonomy = 'link_category';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1147
			$tt_id = $tt_ids[$term_id][$taxonomy];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1148
			if ( empty($tt_id) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1149
				continue;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1150
			$wpdb->insert( $wpdb->term_relationships, array('object_id' => $link_id, 'term_taxonomy_id' => $tt_id) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1151
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1152
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1153
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1154
	if ( $wp_current_db_version < 4772 ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1155
		// Obsolete linkcategories table
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1156
		$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'linkcategories');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1157
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1158
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1159
	// Recalculate all counts
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1160
	$terms = $wpdb->get_results("SELECT term_taxonomy_id, taxonomy FROM $wpdb->term_taxonomy");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1161
	foreach ( (array) $terms as $term ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1162
		if ( ('post_tag' == $term->taxonomy) || ('category' == $term->taxonomy) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1163
			$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) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1164
		else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1165
			$count = $wpdb->get_var( $wpdb->prepare("SELECT COUNT(*) FROM $wpdb->term_relationships WHERE term_taxonomy_id = %d", $term->term_taxonomy_id) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1166
		$wpdb->update( $wpdb->term_taxonomy, array('count' => $count), array('term_taxonomy_id' => $term->term_taxonomy_id) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1167
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1168
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1169
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1170
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1171
 * Remove old options from the database.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1172
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1173
 * @ignore
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1174
 * @since 2.3.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1175
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1176
 * @global wpdb $wpdb WordPress database abstraction object.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1177
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1178
function upgrade_230_options_table() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1179
	global $wpdb;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1180
	$old_options_fields = array( 'option_can_override', 'option_type', 'option_width', 'option_height', 'option_description', 'option_admin_level' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1181
	$wpdb->hide_errors();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1182
	foreach ( $old_options_fields as $old )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1183
		$wpdb->query("ALTER TABLE $wpdb->options DROP $old");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1184
	$wpdb->show_errors();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1185
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1186
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1187
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1188
 * Remove old categories, link2cat, and post2cat database tables.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1189
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1190
 * @ignore
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1191
 * @since 2.3.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1192
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1193
 * @global wpdb $wpdb WordPress database abstraction object.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1194
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1195
function upgrade_230_old_tables() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1196
	global $wpdb;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1197
	$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'categories');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1198
	$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'link2cat');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1199
	$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'post2cat');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1200
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1201
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1202
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1203
 * Upgrade old slugs made in version 2.2.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1204
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1205
 * @ignore
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1206
 * @since 2.2.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1207
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1208
 * @global wpdb $wpdb WordPress database abstraction object.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1209
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1210
function upgrade_old_slugs() {
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1211
	// Upgrade people who were using the Redirect Old Slugs plugin.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1212
	global $wpdb;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1213
	$wpdb->query("UPDATE $wpdb->postmeta SET meta_key = '_wp_old_slug' WHERE meta_key = 'old_slug'");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1214
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1215
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1216
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1217
 * Execute changes made in WordPress 2.5.0.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1218
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1219
 * @ignore
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1220
 * @since 2.5.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1221
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1222
 * @global int $wp_current_db_version
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1223
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1224
function upgrade_250() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1225
	global $wp_current_db_version;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1226
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1227
	if ( $wp_current_db_version < 6689 ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1228
		populate_roles_250();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1229
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1230
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1231
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1232
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1233
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1234
 * Execute changes made in WordPress 2.5.2.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1235
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1236
 * @ignore
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1237
 * @since 2.5.2
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1238
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1239
 * @global wpdb $wpdb WordPress database abstraction object.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1240
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1241
function upgrade_252() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1242
	global $wpdb;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1243
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1244
	$wpdb->query("UPDATE $wpdb->users SET user_activation_key = ''");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1245
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1246
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1247
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1248
 * Execute changes made in WordPress 2.6.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1249
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1250
 * @ignore
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1251
 * @since 2.6.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1252
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1253
 * @global int $wp_current_db_version
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1254
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1255
function upgrade_260() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1256
	global $wp_current_db_version;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1257
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1258
	if ( $wp_current_db_version < 8000 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1259
		populate_roles_260();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1260
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1261
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1262
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1263
 * Execute changes made in WordPress 2.7.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1264
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1265
 * @ignore
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1266
 * @since 2.7.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1267
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1268
 * @global wpdb $wpdb WordPress database abstraction object.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1269
 * @global int  $wp_current_db_version
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1270
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1271
function upgrade_270() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1272
	global $wpdb, $wp_current_db_version;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1273
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1274
	if ( $wp_current_db_version < 8980 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1275
		populate_roles_270();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1276
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1277
	// Update post_date for unpublished posts with empty timestamp
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1278
	if ( $wp_current_db_version < 8921 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1279
		$wpdb->query( "UPDATE $wpdb->posts SET post_date = post_modified WHERE post_date = '0000-00-00 00:00:00'" );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1280
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1281
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1282
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1283
 * Execute changes made in WordPress 2.8.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1284
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1285
 * @ignore
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1286
 * @since 2.8.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1287
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1288
 * @global int  $wp_current_db_version
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1289
 * @global wpdb $wpdb WordPress database abstraction object.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1290
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1291
function upgrade_280() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1292
	global $wp_current_db_version, $wpdb;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1293
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1294
	if ( $wp_current_db_version < 10360 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1295
		populate_roles_280();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1296
	if ( is_multisite() ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1297
		$start = 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1298
		while( $rows = $wpdb->get_results( "SELECT option_name, option_value FROM $wpdb->options ORDER BY option_id LIMIT $start, 20" ) ) {
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1299
			foreach ( $rows as $row ) {
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1300
				$value = $row->option_value;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1301
				if ( !@unserialize( $value ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1302
					$value = stripslashes( $value );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1303
				if ( $value !== $row->option_value ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1304
					update_option( $row->option_name, $value );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1305
				}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1306
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1307
			$start += 20;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1308
		}
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1309
		clean_blog_cache( get_current_blog_id() );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1310
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1311
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1312
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1313
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1314
 * Execute changes made in WordPress 2.9.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1315
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1316
 * @ignore
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1317
 * @since 2.9.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1318
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1319
 * @global int $wp_current_db_version
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1320
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1321
function upgrade_290() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1322
	global $wp_current_db_version;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1323
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1324
	if ( $wp_current_db_version < 11958 ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1325
		// Previously, setting depth to 1 would redundantly disable threading, but now 2 is the minimum depth to avoid confusion
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1326
		if ( get_option( 'thread_comments_depth' ) == '1' ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1327
			update_option( 'thread_comments_depth', 2 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1328
			update_option( 'thread_comments', 0 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1329
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1330
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1331
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1332
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1333
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1334
 * Execute changes made in WordPress 3.0.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1335
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1336
 * @ignore
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1337
 * @since 3.0.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1338
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1339
 * @global int  $wp_current_db_version
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1340
 * @global wpdb $wpdb WordPress database abstraction object.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1341
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1342
function upgrade_300() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1343
	global $wp_current_db_version, $wpdb;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1344
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1345
	if ( $wp_current_db_version < 15093 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1346
		populate_roles_300();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1347
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1348
	if ( $wp_current_db_version < 14139 && is_multisite() && is_main_site() && ! defined( 'MULTISITE' ) && get_site_option( 'siteurl' ) === false )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1349
		add_site_option( 'siteurl', '' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1350
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1351
	// 3.0 screen options key name changes.
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1352
	if ( wp_should_upgrade_global_tables() ) {
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1353
		$sql = "DELETE FROM $wpdb->usermeta
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1354
			WHERE meta_key LIKE %s
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1355
			OR meta_key LIKE %s
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1356
			OR meta_key LIKE %s
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1357
			OR meta_key LIKE %s
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1358
			OR meta_key LIKE %s
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1359
			OR meta_key LIKE %s
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1360
			OR meta_key = 'manageedittagscolumnshidden'
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1361
			OR meta_key = 'managecategoriescolumnshidden'
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1362
			OR meta_key = 'manageedit-tagscolumnshidden'
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1363
			OR meta_key = 'manageeditcolumnshidden'
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1364
			OR meta_key = 'categories_per_page'
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1365
			OR meta_key = 'edit_tags_per_page'";
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1366
		$prefix = $wpdb->esc_like( $wpdb->base_prefix );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1367
		$wpdb->query( $wpdb->prepare( $sql,
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1368
			$prefix . '%' . $wpdb->esc_like( 'meta-box-hidden' ) . '%',
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1369
			$prefix . '%' . $wpdb->esc_like( 'closedpostboxes' ) . '%',
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1370
			$prefix . '%' . $wpdb->esc_like( 'manage-'	   ) . '%' . $wpdb->esc_like( '-columns-hidden' ) . '%',
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1371
			$prefix . '%' . $wpdb->esc_like( 'meta-box-order'  ) . '%',
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1372
			$prefix . '%' . $wpdb->esc_like( 'metaboxorder'    ) . '%',
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1373
			$prefix . '%' . $wpdb->esc_like( 'screen_layout'   ) . '%'
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1374
		) );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1375
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1376
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1377
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1378
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1379
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1380
 * Execute changes made in WordPress 3.3.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1381
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1382
 * @ignore
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1383
 * @since 3.3.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1384
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1385
 * @global int   $wp_current_db_version
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1386
 * @global wpdb  $wpdb
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1387
 * @global array $wp_registered_widgets
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1388
 * @global array $sidebars_widgets
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1389
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1390
function upgrade_330() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1391
	global $wp_current_db_version, $wpdb, $wp_registered_widgets, $sidebars_widgets;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1392
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1393
	if ( $wp_current_db_version < 19061 && wp_should_upgrade_global_tables() ) {
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1394
		$wpdb->query( "DELETE FROM $wpdb->usermeta WHERE meta_key IN ('show_admin_bar_admin', 'plugins_last_view')" );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1395
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1396
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1397
	if ( $wp_current_db_version >= 11548 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1398
		return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1399
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1400
	$sidebars_widgets = get_option( 'sidebars_widgets', array() );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1401
	$_sidebars_widgets = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1402
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1403
	if ( isset($sidebars_widgets['wp_inactive_widgets']) || empty($sidebars_widgets) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1404
		$sidebars_widgets['array_version'] = 3;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1405
	elseif ( !isset($sidebars_widgets['array_version']) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1406
		$sidebars_widgets['array_version'] = 1;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1407
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1408
	switch ( $sidebars_widgets['array_version'] ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1409
		case 1 :
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1410
			foreach ( (array) $sidebars_widgets as $index => $sidebar )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1411
			if ( is_array($sidebar) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1412
			foreach ( (array) $sidebar as $i => $name ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1413
				$id = strtolower($name);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1414
				if ( isset($wp_registered_widgets[$id]) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1415
					$_sidebars_widgets[$index][$i] = $id;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1416
					continue;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1417
				}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1418
				$id = sanitize_title($name);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1419
				if ( isset($wp_registered_widgets[$id]) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1420
					$_sidebars_widgets[$index][$i] = $id;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1421
					continue;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1422
				}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1423
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1424
				$found = false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1425
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1426
				foreach ( $wp_registered_widgets as $widget_id => $widget ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1427
					if ( strtolower($widget['name']) == strtolower($name) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1428
						$_sidebars_widgets[$index][$i] = $widget['id'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1429
						$found = true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1430
						break;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1431
					} elseif ( sanitize_title($widget['name']) == sanitize_title($name) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1432
						$_sidebars_widgets[$index][$i] = $widget['id'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1433
						$found = true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1434
						break;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1435
					}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1436
				}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1437
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1438
				if ( $found )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1439
					continue;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1440
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1441
				unset($_sidebars_widgets[$index][$i]);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1442
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1443
			$_sidebars_widgets['array_version'] = 2;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1444
			$sidebars_widgets = $_sidebars_widgets;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1445
			unset($_sidebars_widgets);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1446
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1447
		case 2 :
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1448
			$sidebars_widgets = retrieve_widgets();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1449
			$sidebars_widgets['array_version'] = 3;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1450
			update_option( 'sidebars_widgets', $sidebars_widgets );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1451
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1452
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1453
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1454
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1455
 * Execute changes made in WordPress 3.4.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1456
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1457
 * @ignore
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1458
 * @since 3.4.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1459
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1460
 * @global int   $wp_current_db_version
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1461
 * @global wpdb  $wpdb
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1462
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1463
function upgrade_340() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1464
	global $wp_current_db_version, $wpdb;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1465
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1466
	if ( $wp_current_db_version < 19798 ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1467
		$wpdb->hide_errors();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1468
		$wpdb->query( "ALTER TABLE $wpdb->options DROP COLUMN blog_id" );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1469
		$wpdb->show_errors();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1470
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1471
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1472
	if ( $wp_current_db_version < 19799 ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1473
		$wpdb->hide_errors();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1474
		$wpdb->query("ALTER TABLE $wpdb->comments DROP INDEX comment_approved");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1475
		$wpdb->show_errors();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1476
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1477
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1478
	if ( $wp_current_db_version < 20022 && wp_should_upgrade_global_tables() ) {
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1479
		$wpdb->query( "DELETE FROM $wpdb->usermeta WHERE meta_key = 'themes_last_view'" );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1480
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1481
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1482
	if ( $wp_current_db_version < 20080 ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1483
		if ( 'yes' == $wpdb->get_var( "SELECT autoload FROM $wpdb->options WHERE option_name = 'uninstall_plugins'" ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1484
			$uninstall_plugins = get_option( 'uninstall_plugins' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1485
			delete_option( 'uninstall_plugins' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1486
			add_option( 'uninstall_plugins', $uninstall_plugins, null, 'no' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1487
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1488
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1489
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1490
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1491
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1492
 * Execute changes made in WordPress 3.5.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1493
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1494
 * @ignore
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1495
 * @since 3.5.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1496
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1497
 * @global int   $wp_current_db_version
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1498
 * @global wpdb  $wpdb
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1499
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1500
function upgrade_350() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1501
	global $wp_current_db_version, $wpdb;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1502
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1503
	if ( $wp_current_db_version < 22006 && $wpdb->get_var( "SELECT link_id FROM $wpdb->links LIMIT 1" ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1504
		update_option( 'link_manager_enabled', 1 ); // Previously set to 0 by populate_options()
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1505
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1506
	if ( $wp_current_db_version < 21811 && wp_should_upgrade_global_tables() ) {
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1507
		$meta_keys = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1508
		foreach ( array_merge( get_post_types(), get_taxonomies() ) as $name ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1509
			if ( false !== strpos( $name, '-' ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1510
			$meta_keys[] = 'edit_' . str_replace( '-', '_', $name ) . '_per_page';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1511
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1512
		if ( $meta_keys ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1513
			$meta_keys = implode( "', '", $meta_keys );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1514
			$wpdb->query( "DELETE FROM $wpdb->usermeta WHERE meta_key IN ('$meta_keys')" );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1515
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1516
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1517
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1518
	if ( $wp_current_db_version < 22422 && $term = get_term_by( 'slug', 'post-format-standard', 'post_format' ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1519
		wp_delete_term( $term->term_id, 'post_format' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1520
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1521
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1522
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1523
 * Execute changes made in WordPress 3.7.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1524
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1525
 * @ignore
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1526
 * @since 3.7.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1527
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1528
 * @global int $wp_current_db_version
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1529
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1530
function upgrade_370() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1531
	global $wp_current_db_version;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1532
	if ( $wp_current_db_version < 25824 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1533
		wp_clear_scheduled_hook( 'wp_auto_updates_maybe_update' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1534
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1535
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1536
/**
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1537
 * Execute changes made in WordPress 3.7.2.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1538
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1539
 * @ignore
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1540
 * @since 3.7.2
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1541
 * @since 3.8.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1542
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1543
 * @global int $wp_current_db_version
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1544
 */
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1545
function upgrade_372() {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1546
	global $wp_current_db_version;
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1547
	if ( $wp_current_db_version < 26148 )
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1548
		wp_clear_scheduled_hook( 'wp_maybe_auto_update' );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1549
}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1550
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1551
/**
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1552
 * Execute changes made in WordPress 3.8.0.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1553
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1554
 * @ignore
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1555
 * @since 3.8.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1556
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1557
 * @global int $wp_current_db_version
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1558
 */
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1559
function upgrade_380() {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1560
	global $wp_current_db_version;
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1561
	if ( $wp_current_db_version < 26691 ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1562
		deactivate_plugins( array( 'mp6/mp6.php' ), true );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1563
	}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1564
}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1565
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1566
/**
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1567
 * Execute changes made in WordPress 4.0.0.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1568
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1569
 * @ignore
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1570
 * @since 4.0.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1571
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1572
 * @global int $wp_current_db_version
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1573
 */
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1574
function upgrade_400() {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1575
	global $wp_current_db_version;
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1576
	if ( $wp_current_db_version < 29630 ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1577
		if ( ! is_multisite() && false === get_option( 'WPLANG' ) ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1578
			if ( defined( 'WPLANG' ) && ( '' !== WPLANG ) && in_array( WPLANG, get_available_languages() ) ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1579
				update_option( 'WPLANG', WPLANG );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1580
			} else {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1581
				update_option( 'WPLANG', '' );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1582
			}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1583
		}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1584
	}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1585
}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1586
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1587
/**
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1588
 * Execute changes made in WordPress 4.2.0.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1589
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1590
 * @ignore
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1591
 * @since 4.2.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1592
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1593
 * @global int   $wp_current_db_version
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1594
 * @global wpdb  $wpdb
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1595
 */
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1596
function upgrade_420() {}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1597
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1598
/**
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1599
 * Executes changes made in WordPress 4.3.0.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1600
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1601
 * @ignore
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1602
 * @since 4.3.0
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1603
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1604
 * @global int  $wp_current_db_version Current version.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1605
 * @global wpdb $wpdb                  WordPress database abstraction object.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1606
 */
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1607
function upgrade_430() {
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1608
	global $wp_current_db_version, $wpdb;
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1609
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1610
	if ( $wp_current_db_version < 32364 ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1611
		upgrade_430_fix_comments();
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1612
	}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1613
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1614
	// Shared terms are split in a separate process.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1615
	if ( $wp_current_db_version < 32814 ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1616
		update_option( 'finished_splitting_shared_terms', 0 );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1617
		wp_schedule_single_event( time() + ( 1 * MINUTE_IN_SECONDS ), 'wp_split_shared_term_batch' );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1618
	}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1619
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1620
	if ( $wp_current_db_version < 33055 && 'utf8mb4' === $wpdb->charset ) {
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1621
		if ( is_multisite() ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1622
			$tables = $wpdb->tables( 'blog' );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1623
		} else {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1624
			$tables = $wpdb->tables( 'all' );
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1625
			if ( ! wp_should_upgrade_global_tables() ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1626
				$global_tables = $wpdb->tables( 'global' );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1627
				$tables = array_diff_assoc( $tables, $global_tables );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1628
			}
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1629
		}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1630
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1631
		foreach ( $tables as $table ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1632
			maybe_convert_table_to_utf8mb4( $table );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1633
		}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1634
	}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1635
}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1636
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1637
/**
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1638
 * Executes comments changes made in WordPress 4.3.0.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1639
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1640
 * @ignore
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1641
 * @since 4.3.0
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1642
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1643
 * @global int  $wp_current_db_version Current version.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1644
 * @global wpdb $wpdb                  WordPress database abstraction object.
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1645
 */
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1646
function upgrade_430_fix_comments() {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1647
	global $wp_current_db_version, $wpdb;
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1648
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1649
	$content_length = $wpdb->get_col_length( $wpdb->comments, 'comment_content' );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1650
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1651
	if ( is_wp_error( $content_length ) ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1652
		return;
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1653
	}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1654
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1655
	if ( false === $content_length ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1656
		$content_length = array(
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1657
			'type'   => 'byte',
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1658
			'length' => 65535,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1659
		);
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1660
	} elseif ( ! is_array( $content_length ) ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1661
		$length = (int) $content_length > 0 ? (int) $content_length : 65535;
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1662
		$content_length = array(
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1663
			'type'	 => 'byte',
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1664
			'length' => $length
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1665
		);
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1666
	}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1667
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1668
	if ( 'byte' !== $content_length['type'] || 0 === $content_length['length'] ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1669
		// Sites with malformed DB schemas are on their own.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1670
		return;
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1671
	}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1672
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1673
	$allowed_length = intval( $content_length['length'] ) - 10;
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1674
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1675
	$comments = $wpdb->get_results(
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1676
		"SELECT `comment_ID` FROM `{$wpdb->comments}`
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1677
			WHERE `comment_date_gmt` > '2015-04-26'
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1678
			AND LENGTH( `comment_content` ) >= {$allowed_length}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1679
			AND ( `comment_content` LIKE '%<%' OR `comment_content` LIKE '%>%' )"
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1680
	);
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1681
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1682
	foreach ( $comments as $comment ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1683
		wp_delete_comment( $comment->comment_ID, true );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1684
	}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1685
}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1686
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1687
/**
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1688
 * Executes changes made in WordPress 4.3.1.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1689
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1690
 * @ignore
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1691
 * @since 4.3.1
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1692
 */
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1693
function upgrade_431() {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1694
	// Fix incorrect cron entries for term splitting
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1695
	$cron_array = _get_cron_array();
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1696
	if ( isset( $cron_array['wp_batch_split_terms'] ) ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1697
		unset( $cron_array['wp_batch_split_terms'] );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1698
		_set_cron_array( $cron_array );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1699
	}
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1700
}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1701
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1702
/**
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1703
 * Executes changes made in WordPress 4.4.0.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1704
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1705
 * @ignore
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1706
 * @since 4.4.0
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1707
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1708
 * @global int  $wp_current_db_version Current version.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1709
 * @global wpdb $wpdb                  WordPress database abstraction object.
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1710
 */
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1711
function upgrade_440() {
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1712
	global $wp_current_db_version, $wpdb;
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1713
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1714
	if ( $wp_current_db_version < 34030 ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1715
		$wpdb->query( "ALTER TABLE {$wpdb->options} MODIFY option_name VARCHAR(191)" );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1716
	}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1717
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1718
	// Remove the unused 'add_users' role.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1719
	$roles = wp_roles();
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1720
	foreach ( $roles->role_objects as $role ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1721
		if ( $role->has_cap( 'add_users' ) ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1722
			$role->remove_cap( 'add_users' );
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1723
		}
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1724
	}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1725
}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1726
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1727
/**
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1728
 * Executes changes made in WordPress 4.5.0.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1729
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1730
 * @ignore
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1731
 * @since 4.5.0
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1732
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1733
 * @global int  $wp_current_db_version Current database version.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1734
 * @global wpdb $wpdb                  WordPress database abstraction object.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1735
 */
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1736
function upgrade_450() {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1737
	global $wp_current_db_version, $wpdb;
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1738
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1739
	if ( $wp_current_db_version < 36180 ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1740
		wp_clear_scheduled_hook( 'wp_maybe_auto_update' );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1741
	}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1742
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1743
	// Remove unused email confirmation options, moved to usermeta.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1744
	if ( $wp_current_db_version < 36679 && is_multisite() ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1745
		$wpdb->query( "DELETE FROM $wpdb->options WHERE option_name REGEXP '^[0-9]+_new_email$'" );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1746
	}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1747
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1748
	// Remove unused user setting for wpLink.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1749
	delete_user_setting( 'wplink' );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1750
}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1751
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1752
/**
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1753
 * Executes changes made in WordPress 4.6.0.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1754
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1755
 * @ignore
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1756
 * @since 4.6.0
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1757
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1758
 * @global int $wp_current_db_version Current database version.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1759
 */
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1760
function upgrade_460() {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1761
	global $wp_current_db_version;
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1762
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1763
	// Remove unused post meta.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1764
	if ( $wp_current_db_version < 37854 ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1765
		delete_post_meta_by_key( '_post_restored_from' );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1766
	}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1767
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1768
	// Remove plugins with callback as an array object/method as the uninstall hook, see #13786.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1769
	if ( $wp_current_db_version < 37965 ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1770
		$uninstall_plugins = get_option( 'uninstall_plugins', array() );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1771
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1772
		if ( ! empty( $uninstall_plugins ) ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1773
			foreach ( $uninstall_plugins as $basename => $callback ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1774
				if ( is_array( $callback ) && is_object( $callback[0] ) ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1775
					unset( $uninstall_plugins[ $basename ] );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1776
				}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1777
			}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1778
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1779
			update_option( 'uninstall_plugins', $uninstall_plugins );
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1780
		}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1781
	}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1782
}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1783
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1784
/**
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1785
 * Executes network-level upgrade routines.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1786
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1787
 * @since 3.0.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1788
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1789
 * @global int   $wp_current_db_version
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1790
 * @global wpdb  $wpdb
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1791
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1792
function upgrade_network() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1793
	global $wp_current_db_version, $wpdb;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1794
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1795
	// Always clear expired transients
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1796
	delete_expired_transients( true );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1797
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1798
	// 2.8.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1799
	if ( $wp_current_db_version < 11549 ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1800
		$wpmu_sitewide_plugins = get_site_option( 'wpmu_sitewide_plugins' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1801
		$active_sitewide_plugins = get_site_option( 'active_sitewide_plugins' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1802
		if ( $wpmu_sitewide_plugins ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1803
			if ( !$active_sitewide_plugins )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1804
				$sitewide_plugins = (array) $wpmu_sitewide_plugins;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1805
			else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1806
				$sitewide_plugins = array_merge( (array) $active_sitewide_plugins, (array) $wpmu_sitewide_plugins );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1807
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1808
			update_site_option( 'active_sitewide_plugins', $sitewide_plugins );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1809
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1810
		delete_site_option( 'wpmu_sitewide_plugins' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1811
		delete_site_option( 'deactivated_sitewide_plugins' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1812
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1813
		$start = 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1814
		while( $rows = $wpdb->get_results( "SELECT meta_key, meta_value FROM {$wpdb->sitemeta} ORDER BY meta_id LIMIT $start, 20" ) ) {
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1815
			foreach ( $rows as $row ) {
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1816
				$value = $row->meta_value;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1817
				if ( !@unserialize( $value ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1818
					$value = stripslashes( $value );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1819
				if ( $value !== $row->meta_value ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1820
					update_site_option( $row->meta_key, $value );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1821
				}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1822
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1823
			$start += 20;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1824
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1825
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1826
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1827
	// 3.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1828
	if ( $wp_current_db_version < 13576 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1829
		update_site_option( 'global_terms_enabled', '1' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1830
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1831
	// 3.3
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1832
	if ( $wp_current_db_version < 19390 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1833
		update_site_option( 'initial_db_version', $wp_current_db_version );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1834
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1835
	if ( $wp_current_db_version < 19470 ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1836
		if ( false === get_site_option( 'active_sitewide_plugins' ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1837
			update_site_option( 'active_sitewide_plugins', array() );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1838
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1839
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1840
	// 3.4
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1841
	if ( $wp_current_db_version < 20148 ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1842
		// 'allowedthemes' keys things by stylesheet. 'allowed_themes' keyed things by name.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1843
		$allowedthemes  = get_site_option( 'allowedthemes'  );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1844
		$allowed_themes = get_site_option( 'allowed_themes' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1845
		if ( false === $allowedthemes && is_array( $allowed_themes ) && $allowed_themes ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1846
			$converted = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1847
			$themes = wp_get_themes();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1848
			foreach ( $themes as $stylesheet => $theme_data ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1849
				if ( isset( $allowed_themes[ $theme_data->get('Name') ] ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1850
					$converted[ $stylesheet ] = true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1851
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1852
			update_site_option( 'allowedthemes', $converted );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1853
			delete_site_option( 'allowed_themes' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1854
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1855
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1856
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1857
	// 3.5
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1858
	if ( $wp_current_db_version < 21823 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1859
		update_site_option( 'ms_files_rewriting', '1' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1860
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1861
	// 3.5.2
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1862
	if ( $wp_current_db_version < 24448 ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1863
		$illegal_names = get_site_option( 'illegal_names' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1864
		if ( is_array( $illegal_names ) && count( $illegal_names ) === 1 ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1865
			$illegal_name = reset( $illegal_names );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1866
			$illegal_names = explode( ' ', $illegal_name );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1867
			update_site_option( 'illegal_names', $illegal_names );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1868
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1869
	}
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1870
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1871
	// 4.2
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1872
	if ( $wp_current_db_version < 31351 && $wpdb->charset === 'utf8mb4' ) {
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1873
		if ( wp_should_upgrade_global_tables() ) {
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1874
			$wpdb->query( "ALTER TABLE $wpdb->usermeta DROP INDEX meta_key, ADD INDEX meta_key(meta_key(191))" );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1875
			$wpdb->query( "ALTER TABLE $wpdb->site DROP INDEX domain, ADD INDEX domain(domain(140),path(51))" );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1876
			$wpdb->query( "ALTER TABLE $wpdb->sitemeta DROP INDEX meta_key, ADD INDEX meta_key(meta_key(191))" );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1877
			$wpdb->query( "ALTER TABLE $wpdb->signups DROP INDEX domain_path, ADD INDEX domain_path(domain(140),path(51))" );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1878
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1879
			$tables = $wpdb->tables( 'global' );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1880
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1881
			// sitecategories may not exist.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1882
			if ( ! $wpdb->get_var( "SHOW TABLES LIKE '{$tables['sitecategories']}'" ) ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1883
				unset( $tables['sitecategories'] );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1884
			}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1885
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1886
			foreach ( $tables as $table ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1887
				maybe_convert_table_to_utf8mb4( $table );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1888
			}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1889
		}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1890
	}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1891
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1892
	// 4.3
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1893
	if ( $wp_current_db_version < 33055 && 'utf8mb4' === $wpdb->charset ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1894
		if ( wp_should_upgrade_global_tables() ) {
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1895
			$upgrade = false;
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1896
			$indexes = $wpdb->get_results( "SHOW INDEXES FROM $wpdb->signups" );
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1897
			foreach ( $indexes as $index ) {
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1898
				if ( 'domain_path' == $index->Key_name && 'domain' == $index->Column_name && 140 != $index->Sub_part ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1899
					$upgrade = true;
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1900
					break;
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1901
				}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1902
			}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1903
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1904
			if ( $upgrade ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1905
				$wpdb->query( "ALTER TABLE $wpdb->signups DROP INDEX domain_path, ADD INDEX domain_path(domain(140),path(51))" );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1906
			}
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1907
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1908
			$tables = $wpdb->tables( 'global' );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1909
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1910
			// sitecategories may not exist.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1911
			if ( ! $wpdb->get_var( "SHOW TABLES LIKE '{$tables['sitecategories']}'" ) ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1912
				unset( $tables['sitecategories'] );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1913
			}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1914
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1915
			foreach ( $tables as $table ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1916
				maybe_convert_table_to_utf8mb4( $table );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1917
			}
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1918
		}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1919
	}
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1920
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1921
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1922
//
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1923
// General functions we use to actually do stuff
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1924
//
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1925
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1926
/**
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1927
 * Creates a table in the database if it doesn't already exist.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1928
 *
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1929
 * This method checks for an existing database and creates a new one if it's not
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1930
 * already present. It doesn't rely on MySQL's "IF NOT EXISTS" statement, but chooses
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1931
 * to query all tables first and then run the SQL statement creating the table.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1932
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1933
 * @since 1.0.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1934
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1935
 * @global wpdb  $wpdb
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1936
 *
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1937
 * @param string $table_name Database table name to create.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1938
 * @param string $create_ddl SQL statement to create table.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1939
 * @return bool If table already exists or was created by function.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1940
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1941
function maybe_create_table($table_name, $create_ddl) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1942
	global $wpdb;
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1943
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1944
	$query = $wpdb->prepare( "SHOW TABLES LIKE %s", $wpdb->esc_like( $table_name ) );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1945
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1946
	if ( $wpdb->get_var( $query ) == $table_name ) {
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1947
		return true;
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1948
	}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1949
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1950
	// Didn't find it try to create it..
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1951
	$wpdb->query($create_ddl);
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1952
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1953
	// We cannot directly tell that whether this succeeded!
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1954
	if ( $wpdb->get_var( $query ) == $table_name ) {
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1955
		return true;
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1956
	}
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1957
	return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1958
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1959
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1960
/**
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1961
 * Drops a specified index from a table.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1962
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1963
 * @since 1.0.1
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1964
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1965
 * @global wpdb  $wpdb
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1966
 *
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1967
 * @param string $table Database table name.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1968
 * @param string $index Index name to drop.
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1969
 * @return true True, when finished.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1970
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1971
function drop_index($table, $index) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1972
	global $wpdb;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1973
	$wpdb->hide_errors();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1974
	$wpdb->query("ALTER TABLE `$table` DROP INDEX `$index`");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1975
	// Now we need to take out all the extra ones we may have created
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1976
	for ($i = 0; $i < 25; $i++) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1977
		$wpdb->query("ALTER TABLE `$table` DROP INDEX `{$index}_$i`");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1978
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1979
	$wpdb->show_errors();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1980
	return true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1981
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1982
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1983
/**
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  1984
 * Adds an index to a specified table.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1985
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1986
 * @since 1.0.1
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1987
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1988
 * @global wpdb  $wpdb
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1989
 *
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1990
 * @param string $table Database table name.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1991
 * @param string $index Database table index column.
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  1992
 * @return true True, when done with execution.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1993
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1994
function add_clean_index($table, $index) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1995
	global $wpdb;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1996
	drop_index($table, $index);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1997
	$wpdb->query("ALTER TABLE `$table` ADD INDEX ( `$index` )");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1998
	return true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1999
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2000
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2001
/**
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2002
 * Adds column to a database table if it doesn't already exist.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2003
 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2004
 * @since 1.3.0
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2005
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2006
 * @global wpdb  $wpdb
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2007
 *
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2008
 * @param string $table_name  The table name to modify.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2009
 * @param string $column_name The column name to add to the table.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2010
 * @param string $create_ddl  The SQL statement used to add the column.
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2011
 * @return bool True if already exists or on successful completion, false on error.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2012
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2013
function maybe_add_column($table_name, $column_name, $create_ddl) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2014
	global $wpdb;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2015
	foreach ($wpdb->get_col("DESC $table_name", 0) as $column ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2016
		if ($column == $column_name) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2017
			return true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2018
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2019
	}
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2020
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2021
	// Didn't find it try to create it.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2022
	$wpdb->query($create_ddl);
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2023
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2024
	// We cannot directly tell that whether this succeeded!
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2025
	foreach ($wpdb->get_col("DESC $table_name", 0) as $column ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2026
		if ($column == $column_name) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2027
			return true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2028
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2029
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2030
	return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2031
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2032
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2033
/**
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2034
 * If a table only contains utf8 or utf8mb4 columns, convert it to utf8mb4.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2035
 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2036
 * @since 4.2.0
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2037
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2038
 * @global wpdb  $wpdb
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2039
 *
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2040
 * @param string $table The table to convert.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2041
 * @return bool true if the table was converted, false if it wasn't.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2042
 */
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2043
function maybe_convert_table_to_utf8mb4( $table ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2044
	global $wpdb;
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2045
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2046
	$results = $wpdb->get_results( "SHOW FULL COLUMNS FROM `$table`" );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2047
	if ( ! $results ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2048
		return false;
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2049
	}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2050
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2051
	foreach ( $results as $column ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2052
		if ( $column->Collation ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2053
			list( $charset ) = explode( '_', $column->Collation );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2054
			$charset = strtolower( $charset );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2055
			if ( 'utf8' !== $charset && 'utf8mb4' !== $charset ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2056
				// Don't upgrade tables that have non-utf8 columns.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2057
				return false;
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2058
			}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2059
		}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2060
	}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2061
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2062
	$table_details = $wpdb->get_row( "SHOW TABLE STATUS LIKE '$table'" );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2063
	if ( ! $table_details ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2064
		return false;
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2065
	}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2066
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2067
	list( $table_charset ) = explode( '_', $table_details->Collation );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2068
	$table_charset = strtolower( $table_charset );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2069
	if ( 'utf8mb4' === $table_charset ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2070
		return true;
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2071
	}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2072
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2073
	return $wpdb->query( "ALTER TABLE $table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci" );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2074
}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2075
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2076
/**
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2077
 * Retrieve all options as it was for 1.2.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2078
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2079
 * @since 1.2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2080
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2081
 * @global wpdb  $wpdb
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2082
 *
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2083
 * @return stdClass List of options.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2084
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2085
function get_alloptions_110() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2086
	global $wpdb;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2087
	$all_options = new stdClass;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2088
	if ( $options = $wpdb->get_results( "SELECT option_name, option_value FROM $wpdb->options" ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2089
		foreach ( $options as $option ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2090
			if ( 'siteurl' == $option->option_name || 'home' == $option->option_name || 'category_base' == $option->option_name )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2091
				$option->option_value = untrailingslashit( $option->option_value );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2092
			$all_options->{$option->option_name} = stripslashes( $option->option_value );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2093
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2094
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2095
	return $all_options;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2096
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2097
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2098
/**
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2099
 * Utility version of get_option that is private to installation/upgrade.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2100
 *
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2101
 * @ignore
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2102
 * @since 1.5.1
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2103
 * @access private
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2104
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2105
 * @global wpdb  $wpdb
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2106
 *
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2107
 * @param string $setting Option name.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2108
 * @return mixed
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2109
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2110
function __get_option($setting) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2111
	global $wpdb;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2112
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2113
	if ( $setting == 'home' && defined( 'WP_HOME' ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2114
		return untrailingslashit( WP_HOME );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2115
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2116
	if ( $setting == 'siteurl' && defined( 'WP_SITEURL' ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2117
		return untrailingslashit( WP_SITEURL );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2118
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2119
	$option = $wpdb->get_var( $wpdb->prepare("SELECT option_value FROM $wpdb->options WHERE option_name = %s", $setting ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2120
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2121
	if ( 'home' == $setting && '' == $option )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2122
		return __get_option( 'siteurl' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2123
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2124
	if ( 'siteurl' == $setting || 'home' == $setting || 'category_base' == $setting || 'tag_base' == $setting )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2125
		$option = untrailingslashit( $option );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2126
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2127
	return maybe_unserialize( $option );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2128
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2129
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2130
/**
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2131
 * Filters for content to remove unnecessary slashes.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2132
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2133
 * @since 1.5.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2134
 *
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2135
 * @param string $content The content to modify.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2136
 * @return string The de-slashed content.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2137
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2138
function deslash($content) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2139
	// Note: \\\ inside a regex denotes a single backslash.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2140
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2141
	/*
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2142
	 * Replace one or more backslashes followed by a single quote with
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2143
	 * a single quote.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2144
	 */
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2145
	$content = preg_replace("/\\\+'/", "'", $content);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2146
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2147
	/*
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2148
	 * Replace one or more backslashes followed by a double quote with
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2149
	 * a double quote.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2150
	 */
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2151
	$content = preg_replace('/\\\+"/', '"', $content);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2152
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2153
	// Replace one or more backslashes with one backslash.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2154
	$content = preg_replace("/\\\+/", "\\", $content);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2155
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2156
	return $content;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2157
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2158
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2159
/**
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2160
 * Modifies the database based on specified SQL statements.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2161
 *
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2162
 * Useful for creating new tables and updating existing tables to a new structure.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2163
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2164
 * @since 1.5.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2165
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2166
 * @global wpdb  $wpdb
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2167
 *
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2168
 * @param string|array $queries Optional. The query to run. Can be multiple queries
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2169
 *                              in an array, or a string of queries separated by
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2170
 *                              semicolons. Default empty.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2171
 * @param bool         $execute Optional. Whether or not to execute the query right away.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2172
 *                              Default true.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2173
 * @return array Strings containing the results of the various update queries.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2174
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2175
function dbDelta( $queries = '', $execute = true ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2176
	global $wpdb;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2177
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2178
	if ( in_array( $queries, array( '', 'all', 'blog', 'global', 'ms_global' ), true ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2179
	    $queries = wp_get_db_schema( $queries );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2180
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2181
	// Separate individual queries into an array
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2182
	if ( !is_array($queries) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2183
		$queries = explode( ';', $queries );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2184
		$queries = array_filter( $queries );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2185
	}
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2186
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2187
	/**
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2188
	 * Filters the dbDelta SQL queries.
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2189
	 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2190
	 * @since 3.3.0
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2191
	 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2192
	 * @param array $queries An array of dbDelta SQL queries.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2193
	 */
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2194
	$queries = apply_filters( 'dbdelta_queries', $queries );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2195
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2196
	$cqueries = array(); // Creation Queries
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2197
	$iqueries = array(); // Insertion Queries
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2198
	$for_update = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2199
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2200
	// Create a tablename index for an array ($cqueries) of queries
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2201
	foreach ($queries as $qry) {
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2202
		if ( preg_match( "|CREATE TABLE ([^ ]*)|", $qry, $matches ) ) {
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2203
			$cqueries[ trim( $matches[1], '`' ) ] = $qry;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2204
			$for_update[$matches[1]] = 'Created table '.$matches[1];
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2205
		} elseif ( preg_match( "|CREATE DATABASE ([^ ]*)|", $qry, $matches ) ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2206
			array_unshift( $cqueries, $qry );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2207
		} elseif ( preg_match( "|INSERT INTO ([^ ]*)|", $qry, $matches ) ) {
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2208
			$iqueries[] = $qry;
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2209
		} elseif ( preg_match( "|UPDATE ([^ ]*)|", $qry, $matches ) ) {
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2210
			$iqueries[] = $qry;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2211
		} else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2212
			// Unrecognized query type
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2213
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2214
	}
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2215
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2216
	/**
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2217
	 * Filters the dbDelta SQL queries for creating tables and/or databases.
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2218
	 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2219
	 * Queries filterable via this hook contain "CREATE TABLE" or "CREATE DATABASE".
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2220
	 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2221
	 * @since 3.3.0
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2222
	 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2223
	 * @param array $cqueries An array of dbDelta create SQL queries.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2224
	 */
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2225
	$cqueries = apply_filters( 'dbdelta_create_queries', $cqueries );
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2226
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2227
	/**
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2228
	 * Filters the dbDelta SQL queries for inserting or updating.
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2229
	 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2230
	 * Queries filterable via this hook contain "INSERT INTO" or "UPDATE".
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2231
	 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2232
	 * @since 3.3.0
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2233
	 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2234
	 * @param array $iqueries An array of dbDelta insert or update SQL queries.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2235
	 */
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2236
	$iqueries = apply_filters( 'dbdelta_insert_queries', $iqueries );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2237
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2238
	$text_fields = array( 'tinytext', 'text', 'mediumtext', 'longtext' );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2239
	$blob_fields = array( 'tinyblob', 'blob', 'mediumblob', 'longblob' );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2240
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2241
	$global_tables = $wpdb->tables( 'global' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2242
	foreach ( $cqueries as $table => $qry ) {
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2243
		// Upgrade global tables only for the main site. Don't upgrade at all if conditions are not optimal.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2244
		if ( in_array( $table, $global_tables ) && ! wp_should_upgrade_global_tables() ) {
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2245
			unset( $cqueries[ $table ], $for_update[ $table ] );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2246
			continue;
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2247
		}
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2248
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2249
		// Fetch the table column structure from the database
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2250
		$suppress = $wpdb->suppress_errors();
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2251
		$tablefields = $wpdb->get_results("DESCRIBE {$table};");
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2252
		$wpdb->suppress_errors( $suppress );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2253
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2254
		if ( ! $tablefields )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2255
			continue;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2256
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2257
		// Clear the field and index arrays.
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2258
		$cfields = $indices = $indices_without_subparts = array();
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2259
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2260
		// Get all of the field names in the query from between the parentheses.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2261
		preg_match("|\((.*)\)|ms", $qry, $match2);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2262
		$qryline = trim($match2[1]);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2263
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2264
		// Separate field lines into an array.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2265
		$flds = explode("\n", $qryline);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2266
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2267
		// For every field line specified in the query.
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2268
		foreach ( $flds as $fld ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2269
			$fld = trim( $fld, " \t\n\r\0\x0B," ); // Default trim characters, plus ','.
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2270
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2271
			// Extract the field name.
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2272
			preg_match( '|^([^ ]*)|', $fld, $fvals );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2273
			$fieldname = trim( $fvals[1], '`' );
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2274
			$fieldname_lowercased = strtolower( $fieldname );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2275
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2276
			// Verify the found field name.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2277
			$validfield = true;
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2278
			switch ( $fieldname_lowercased ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2279
				case '':
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2280
				case 'primary':
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2281
				case 'index':
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2282
				case 'fulltext':
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2283
				case 'unique':
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2284
				case 'key':
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2285
				case 'spatial':
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2286
					$validfield = false;
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2287
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2288
					/*
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2289
					 * Normalize the index definition.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2290
					 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2291
					 * This is done so the definition can be compared against the result of a
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2292
					 * `SHOW INDEX FROM $table_name` query which returns the current table
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2293
					 * index information.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2294
					 */
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2295
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2296
					// Extract type, name and columns from the definition.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2297
					preg_match(
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2298
						  '/^'
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2299
						.   '(?P<index_type>'             // 1) Type of the index.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2300
						.       'PRIMARY\s+KEY|(?:UNIQUE|FULLTEXT|SPATIAL)\s+(?:KEY|INDEX)|KEY|INDEX'
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2301
						.   ')'
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2302
						.   '\s+'                         // Followed by at least one white space character.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2303
						.   '(?:'                         // Name of the index. Optional if type is PRIMARY KEY.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2304
						.       '`?'                      // Name can be escaped with a backtick.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2305
						.           '(?P<index_name>'     // 2) Name of the index.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2306
						.               '(?:[0-9a-zA-Z$_-]|[\xC2-\xDF][\x80-\xBF])+'
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2307
						.           ')'
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2308
						.       '`?'                      // Name can be escaped with a backtick.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2309
						.       '\s+'                     // Followed by at least one white space character.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2310
						.   ')*'
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2311
						.   '\('                          // Opening bracket for the columns.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2312
						.       '(?P<index_columns>'
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2313
						.           '.+?'                 // 3) Column names, index prefixes, and orders.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2314
						.       ')'
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2315
						.   '\)'                          // Closing bracket for the columns.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2316
						. '$/im',
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2317
						$fld,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2318
						$index_matches
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2319
					);
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2320
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2321
					// Uppercase the index type and normalize space characters.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2322
					$index_type = strtoupper( preg_replace( '/\s+/', ' ', trim( $index_matches['index_type'] ) ) );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2323
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2324
					// 'INDEX' is a synonym for 'KEY', standardize on 'KEY'.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2325
					$index_type = str_replace( 'INDEX', 'KEY', $index_type );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2326
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2327
					// Escape the index name with backticks. An index for a primary key has no name.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2328
					$index_name = ( 'PRIMARY KEY' === $index_type ) ? '' : '`' . strtolower( $index_matches['index_name'] ) . '`';
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2329
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2330
					// Parse the columns. Multiple columns are separated by a comma.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2331
					$index_columns = $index_columns_without_subparts = array_map( 'trim', explode( ',', $index_matches['index_columns'] ) );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2332
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2333
					// Normalize columns.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2334
					foreach ( $index_columns as $id => &$index_column ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2335
						// Extract column name and number of indexed characters (sub_part).
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2336
						preg_match(
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2337
							  '/'
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2338
							.   '`?'                      // Name can be escaped with a backtick.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2339
							.       '(?P<column_name>'    // 1) Name of the column.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2340
							.           '(?:[0-9a-zA-Z$_-]|[\xC2-\xDF][\x80-\xBF])+'
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2341
							.       ')'
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2342
							.   '`?'                      // Name can be escaped with a backtick.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2343
							.   '(?:'                     // Optional sub part.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2344
							.       '\s*'                 // Optional white space character between name and opening bracket.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2345
							.       '\('                  // Opening bracket for the sub part.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2346
							.           '\s*'             // Optional white space character after opening bracket.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2347
							.           '(?P<sub_part>'
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2348
							.               '\d+'         // 2) Number of indexed characters.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2349
							.           ')'
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2350
							.           '\s*'             // Optional white space character before closing bracket.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2351
							.        '\)'                 // Closing bracket for the sub part.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2352
							.   ')?'
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2353
							. '/',
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2354
							$index_column,
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2355
							$index_column_matches
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2356
						);
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2357
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2358
						// Escape the column name with backticks.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2359
						$index_column = '`' . $index_column_matches['column_name'] . '`';
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2360
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2361
						// We don't need to add the subpart to $index_columns_without_subparts
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2362
						$index_columns_without_subparts[ $id ] = $index_column;
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2363
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2364
						// Append the optional sup part with the number of indexed characters.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2365
						if ( isset( $index_column_matches['sub_part'] ) ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2366
							$index_column .= '(' . $index_column_matches['sub_part'] . ')';
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2367
						}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2368
					}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2369
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2370
					// Build the normalized index definition and add it to the list of indices.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2371
					$indices[] = "{$index_type} {$index_name} (" . implode( ',', $index_columns ) . ")";
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2372
					$indices_without_subparts[] = "{$index_type} {$index_name} (" . implode( ',', $index_columns_without_subparts ) . ")";
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2373
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2374
					// Destroy no longer needed variables.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2375
					unset( $index_column, $index_column_matches, $index_matches, $index_type, $index_name, $index_columns, $index_columns_without_subparts );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2376
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2377
					break;
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2378
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2379
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2380
			// If it's a valid field, add it to the field array.
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2381
			if ( $validfield ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2382
				$cfields[ $fieldname_lowercased ] = $fld;
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2383
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2384
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2385
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2386
		// For every field in the table.
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2387
		foreach ( $tablefields as $tablefield ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2388
			$tablefield_field_lowercased = strtolower( $tablefield->Field );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2389
			$tablefield_type_lowercased = strtolower( $tablefield->Type );
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2390
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2391
			// If the table field exists in the field array ...
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2392
			if ( array_key_exists( $tablefield_field_lowercased, $cfields ) ) {
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2393
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2394
				// Get the field type from the query.
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2395
				preg_match( '|`?' . $tablefield->Field . '`? ([^ ]*( unsigned)?)|i', $cfields[ $tablefield_field_lowercased ], $matches );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2396
				$fieldtype = $matches[1];
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2397
				$fieldtype_lowercased = strtolower( $fieldtype );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2398
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2399
				// Is actual field type different from the field type in query?
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2400
				if ($tablefield->Type != $fieldtype) {
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2401
					$do_change = true;
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2402
					if ( in_array( $fieldtype_lowercased, $text_fields ) && in_array( $tablefield_type_lowercased, $text_fields ) ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2403
						if ( array_search( $fieldtype_lowercased, $text_fields ) < array_search( $tablefield_type_lowercased, $text_fields ) ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2404
							$do_change = false;
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2405
						}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2406
					}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2407
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2408
					if ( in_array( $fieldtype_lowercased, $blob_fields ) && in_array( $tablefield_type_lowercased, $blob_fields ) ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2409
						if ( array_search( $fieldtype_lowercased, $blob_fields ) < array_search( $tablefield_type_lowercased, $blob_fields ) ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2410
							$do_change = false;
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2411
						}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2412
					}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2413
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2414
					if ( $do_change ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2415
						// Add a query to change the column type.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2416
						$cqueries[] = "ALTER TABLE {$table} CHANGE COLUMN `{$tablefield->Field}` " . $cfields[ $tablefield_field_lowercased ];
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2417
						$for_update[$table.'.'.$tablefield->Field] = "Changed type of {$table}.{$tablefield->Field} from {$tablefield->Type} to {$fieldtype}";
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2418
					}
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2419
				}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2420
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2421
				// Get the default value from the array.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2422
				if ( preg_match( "| DEFAULT '(.*?)'|i", $cfields[ $tablefield_field_lowercased ], $matches ) ) {
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2423
					$default_value = $matches[1];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2424
					if ($tablefield->Default != $default_value) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2425
						// Add a query to change the column's default value
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2426
						$cqueries[] = "ALTER TABLE {$table} ALTER COLUMN `{$tablefield->Field}` SET DEFAULT '{$default_value}'";
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2427
						$for_update[$table.'.'.$tablefield->Field] = "Changed default value of {$table}.{$tablefield->Field} from {$tablefield->Default} to {$default_value}";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2428
					}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2429
				}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2430
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2431
				// Remove the field from the array (so it's not added).
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2432
				unset( $cfields[ $tablefield_field_lowercased ] );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2433
			} else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2434
				// This field exists in the table, but not in the creation queries?
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2435
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2436
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2437
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2438
		// For every remaining field specified for the table.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2439
		foreach ($cfields as $fieldname => $fielddef) {
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2440
			// Push a query line into $cqueries that adds the field to that table.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2441
			$cqueries[] = "ALTER TABLE {$table} ADD COLUMN $fielddef";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2442
			$for_update[$table.'.'.$fieldname] = 'Added column '.$table.'.'.$fieldname;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2443
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2444
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2445
		// Index stuff goes here. Fetch the table index structure from the database.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2446
		$tableindices = $wpdb->get_results("SHOW INDEX FROM {$table};");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2447
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2448
		if ($tableindices) {
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2449
			// Clear the index array.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2450
			$index_ary = array();
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2451
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2452
			// For every index in the table.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2453
			foreach ($tableindices as $tableindex) {
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2454
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2455
				// Add the index to the index data array.
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2456
				$keyname = strtolower( $tableindex->Key_name );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2457
				$index_ary[$keyname]['columns'][] = array('fieldname' => $tableindex->Column_name, 'subpart' => $tableindex->Sub_part);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2458
				$index_ary[$keyname]['unique'] = ($tableindex->Non_unique == 0)?true:false;
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2459
				$index_ary[$keyname]['index_type'] = $tableindex->Index_type;
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2460
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2461
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2462
			// For each actual index in the index array.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2463
			foreach ($index_ary as $index_name => $index_data) {
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2464
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2465
				// Build a create string to compare to the query.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2466
				$index_string = '';
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2467
				if ($index_name == 'primary') {
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2468
					$index_string .= 'PRIMARY ';
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2469
				} elseif ( $index_data['unique'] ) {
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2470
					$index_string .= 'UNIQUE ';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2471
				}
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2472
				if ( 'FULLTEXT' === strtoupper( $index_data['index_type'] ) ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2473
					$index_string .= 'FULLTEXT ';
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2474
				}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2475
				if ( 'SPATIAL' === strtoupper( $index_data['index_type'] ) ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2476
					$index_string .= 'SPATIAL ';
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2477
				}
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2478
				$index_string .= 'KEY ';
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2479
				if ( 'primary' !== $index_name  ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2480
					$index_string .= '`' . $index_name . '`';
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2481
				}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2482
				$index_columns = '';
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2483
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2484
				// For each column in the index.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2485
				foreach ($index_data['columns'] as $column_data) {
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2486
					if ( $index_columns != '' ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2487
						$index_columns .= ',';
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2488
					}
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2489
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2490
					// Add the field to the column list string.
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2491
					$index_columns .= '`' . $column_data['fieldname'] . '`';
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2492
				}
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2493
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2494
				// Add the column list to the index create string.
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2495
				$index_string .= " ($index_columns)";
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2496
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2497
				// Check if the index definition exists, ignoring subparts.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2498
				if ( ! ( ( $aindex = array_search( $index_string, $indices_without_subparts ) ) === false ) ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2499
					// If the index already exists (even with different subparts), we don't need to create it.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2500
					unset( $indices_without_subparts[ $aindex ] );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2501
					unset( $indices[ $aindex ] );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2502
				}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2503
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2504
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2505
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2506
		// For every remaining index specified for the table.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2507
		foreach ( (array) $indices as $index ) {
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2508
			// Push a query line into $cqueries that adds the index to that table.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2509
			$cqueries[] = "ALTER TABLE {$table} ADD $index";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2510
			$for_update[] = 'Added index ' . $table . ' ' . $index;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2511
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2512
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2513
		// Remove the original table creation query from processing.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2514
		unset( $cqueries[ $table ], $for_update[ $table ] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2515
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2516
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2517
	$allqueries = array_merge($cqueries, $iqueries);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2518
	if ($execute) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2519
		foreach ($allqueries as $query) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2520
			$wpdb->query($query);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2521
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2522
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2523
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2524
	return $for_update;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2525
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2526
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2527
/**
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2528
 * Updates the database tables to a new schema.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2529
 *
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2530
 * By default, updates all the tables to use the latest defined schema, but can also
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2531
 * be used to update a specific set of tables in wp_get_db_schema().
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2532
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2533
 * @since 1.5.0
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2534
 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2535
 * @uses dbDelta
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2536
 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2537
 * @param string $tables Optional. Which set of tables to update. Default is 'all'.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2538
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2539
function make_db_current( $tables = 'all' ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2540
	$alterations = dbDelta( $tables );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2541
	echo "<ol>\n";
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2542
	foreach ($alterations as $alteration) echo "<li>$alteration</li>\n";
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2543
	echo "</ol>\n";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2544
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2545
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2546
/**
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2547
 * Updates the database tables to a new schema, but without displaying results.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2548
 *
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2549
 * By default, updates all the tables to use the latest defined schema, but can
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2550
 * also be used to update a specific set of tables in wp_get_db_schema().
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2551
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2552
 * @since 1.5.0
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2553
 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2554
 * @see make_db_current()
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2555
 *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2556
 * @param string $tables Optional. Which set of tables to update. Default is 'all'.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2557
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2558
function make_db_current_silent( $tables = 'all' ) {
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2559
	dbDelta( $tables );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2560
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2561
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2562
/**
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2563
 * Creates a site theme from an existing theme.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2564
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2565
 * {@internal Missing Long Description}}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2566
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2567
 * @since 1.5.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2568
 *
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2569
 * @param string $theme_name The name of the theme.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2570
 * @param string $template   The directory name of the theme.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2571
 * @return bool
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2572
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2573
function make_site_theme_from_oldschool($theme_name, $template) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2574
	$home_path = get_home_path();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2575
	$site_dir = WP_CONTENT_DIR . "/themes/$template";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2576
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2577
	if (! file_exists("$home_path/index.php"))
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2578
		return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2579
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2580
	/*
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2581
	 * Copy files from the old locations to the site theme.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2582
	 * TODO: This does not copy arbitrary include dependencies. Only the standard WP files are copied.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2583
	 */
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2584
	$files = array('index.php' => 'index.php', 'wp-layout.css' => 'style.css', 'wp-comments.php' => 'comments.php', 'wp-comments-popup.php' => 'comments-popup.php');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2585
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2586
	foreach ($files as $oldfile => $newfile) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2587
		if ($oldfile == 'index.php')
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2588
			$oldpath = $home_path;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2589
		else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2590
			$oldpath = ABSPATH;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2591
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2592
		// Check to make sure it's not a new index.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2593
		if ($oldfile == 'index.php') {
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2594
			$index = implode('', file("$oldpath/$oldfile"));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2595
			if (strpos($index, 'WP_USE_THEMES') !== false) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2596
				if (! @copy(WP_CONTENT_DIR . '/themes/' . WP_DEFAULT_THEME . '/index.php', "$site_dir/$newfile"))
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2597
					return false;
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2598
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2599
				// Don't copy anything.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2600
				continue;
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2601
			}
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2602
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2603
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2604
		if (! @copy("$oldpath/$oldfile", "$site_dir/$newfile"))
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2605
			return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2606
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2607
		chmod("$site_dir/$newfile", 0777);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2608
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2609
		// Update the blog header include in each file.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2610
		$lines = explode("\n", implode('', file("$site_dir/$newfile")));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2611
		if ($lines) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2612
			$f = fopen("$site_dir/$newfile", 'w');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2613
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2614
			foreach ($lines as $line) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2615
				if (preg_match('/require.*wp-blog-header/', $line))
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2616
					$line = '//' . $line;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2617
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2618
				// Update stylesheet references.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2619
				$line = str_replace("<?php echo __get_option('siteurl'); ?>/wp-layout.css", "<?php bloginfo('stylesheet_url'); ?>", $line);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2620
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2621
				// Update comments template inclusion.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2622
				$line = str_replace("<?php include(ABSPATH . 'wp-comments.php'); ?>", "<?php comments_template(); ?>", $line);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2623
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2624
				fwrite($f, "{$line}\n");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2625
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2626
			fclose($f);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2627
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2628
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2629
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2630
	// Add a theme header.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2631
	$header = "/*\nTheme Name: $theme_name\nTheme URI: " . __get_option('siteurl') . "\nDescription: A theme automatically created by the update.\nVersion: 1.0\nAuthor: Moi\n*/\n";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2632
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2633
	$stylelines = file_get_contents("$site_dir/style.css");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2634
	if ($stylelines) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2635
		$f = fopen("$site_dir/style.css", 'w');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2636
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2637
		fwrite($f, $header);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2638
		fwrite($f, $stylelines);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2639
		fclose($f);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2640
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2641
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2642
	return true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2643
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2644
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2645
/**
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2646
 * Creates a site theme from the default theme.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2647
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2648
 * {@internal Missing Long Description}}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2649
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2650
 * @since 1.5.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2651
 *
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2652
 * @param string $theme_name The name of the theme.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2653
 * @param string $template   The directory name of the theme.
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2654
 * @return false|void
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2655
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2656
function make_site_theme_from_default($theme_name, $template) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2657
	$site_dir = WP_CONTENT_DIR . "/themes/$template";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2658
	$default_dir = WP_CONTENT_DIR . '/themes/' . WP_DEFAULT_THEME;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2659
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2660
	// Copy files from the default theme to the site theme.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2661
	//$files = array('index.php', 'comments.php', 'comments-popup.php', 'footer.php', 'header.php', 'sidebar.php', 'style.css');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2662
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2663
	$theme_dir = @ opendir($default_dir);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2664
	if ($theme_dir) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2665
		while(($theme_file = readdir( $theme_dir )) !== false) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2666
			if (is_dir("$default_dir/$theme_file"))
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2667
				continue;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2668
			if (! @copy("$default_dir/$theme_file", "$site_dir/$theme_file"))
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2669
				return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2670
			chmod("$site_dir/$theme_file", 0777);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2671
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2672
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2673
	@closedir($theme_dir);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2674
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2675
	// Rewrite the theme header.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2676
	$stylelines = explode("\n", implode('', file("$site_dir/style.css")));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2677
	if ($stylelines) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2678
		$f = fopen("$site_dir/style.css", 'w');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2679
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2680
		foreach ($stylelines as $line) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2681
			if (strpos($line, 'Theme Name:') !== false) $line = 'Theme Name: ' . $theme_name;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2682
			elseif (strpos($line, 'Theme URI:') !== false) $line = 'Theme URI: ' . __get_option('url');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2683
			elseif (strpos($line, 'Description:') !== false) $line = 'Description: Your theme.';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2684
			elseif (strpos($line, 'Version:') !== false) $line = 'Version: 1';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2685
			elseif (strpos($line, 'Author:') !== false) $line = 'Author: You';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2686
			fwrite($f, $line . "\n");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2687
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2688
		fclose($f);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2689
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2690
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2691
	// Copy the images.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2692
	umask(0);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2693
	if (! mkdir("$site_dir/images", 0777)) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2694
		return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2695
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2696
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2697
	$images_dir = @ opendir("$default_dir/images");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2698
	if ($images_dir) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2699
		while(($image = readdir($images_dir)) !== false) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2700
			if (is_dir("$default_dir/images/$image"))
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2701
				continue;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2702
			if (! @copy("$default_dir/images/$image", "$site_dir/images/$image"))
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2703
				return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2704
			chmod("$site_dir/images/$image", 0777);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2705
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2706
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2707
	@closedir($images_dir);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2708
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2709
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2710
/**
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2711
 * Creates a site theme.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2712
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2713
 * {@internal Missing Long Description}}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2714
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2715
 * @since 1.5.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2716
 *
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2717
 * @return false|string
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2718
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2719
function make_site_theme() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2720
	// Name the theme after the blog.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2721
	$theme_name = __get_option('blogname');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2722
	$template = sanitize_title($theme_name);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2723
	$site_dir = WP_CONTENT_DIR . "/themes/$template";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2724
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2725
	// If the theme already exists, nothing to do.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2726
	if ( is_dir($site_dir)) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2727
		return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2728
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2729
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2730
	// We must be able to write to the themes dir.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2731
	if (! is_writable(WP_CONTENT_DIR . "/themes")) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2732
		return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2733
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2734
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2735
	umask(0);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2736
	if (! mkdir($site_dir, 0777)) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2737
		return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2738
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2739
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2740
	if (file_exists(ABSPATH . 'wp-layout.css')) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2741
		if (! make_site_theme_from_oldschool($theme_name, $template)) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2742
			// TODO: rm -rf the site theme directory.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2743
			return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2744
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2745
	} else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2746
		if (! make_site_theme_from_default($theme_name, $template))
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2747
			// TODO: rm -rf the site theme directory.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2748
			return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2749
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2750
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2751
	// Make the new site theme active.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2752
	$current_template = __get_option('template');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2753
	if ($current_template == WP_DEFAULT_THEME) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2754
		update_option('template', $template);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2755
		update_option('stylesheet', $template);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2756
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2757
	return $template;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2758
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2759
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2760
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2761
 * Translate user level to user role name.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2762
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2763
 * @since 2.0.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2764
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2765
 * @param int $level User level.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2766
 * @return string User role name.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2767
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2768
function translate_level_to_role($level) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2769
	switch ($level) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2770
	case 10:
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2771
	case 9:
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2772
	case 8:
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2773
		return 'administrator';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2774
	case 7:
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2775
	case 6:
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2776
	case 5:
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2777
		return 'editor';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2778
	case 4:
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2779
	case 3:
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2780
	case 2:
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2781
		return 'author';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2782
	case 1:
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2783
		return 'contributor';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2784
	case 0:
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2785
		return 'subscriber';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2786
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2787
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2788
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2789
/**
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2790
 * Checks the version of the installed MySQL binary.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2791
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2792
 * @since 2.1.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2793
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2794
 * @global wpdb  $wpdb
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2795
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2796
function wp_check_mysql_version() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2797
	global $wpdb;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2798
	$result = $wpdb->check_database_version();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2799
	if ( is_wp_error( $result ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2800
		die( $result->get_error_message() );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2801
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2802
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2803
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2804
 * Disables the Automattic widgets plugin, which was merged into core.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2805
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2806
 * @since 2.2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2807
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2808
function maybe_disable_automattic_widgets() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2809
	$plugins = __get_option( 'active_plugins' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2810
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2811
	foreach ( (array) $plugins as $plugin ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2812
		if ( basename( $plugin ) == 'widgets.php' ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2813
			array_splice( $plugins, array_search( $plugin, $plugins ), 1 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2814
			update_option( 'active_plugins', $plugins );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2815
			break;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2816
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2817
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2818
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2819
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2820
/**
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2821
 * Disables the Link Manager on upgrade if, at the time of upgrade, no links exist in the DB.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2822
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2823
 * @since 3.5.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2824
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2825
 * @global int  $wp_current_db_version
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2826
 * @global wpdb $wpdb WordPress database abstraction object.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2827
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2828
function maybe_disable_link_manager() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2829
	global $wp_current_db_version, $wpdb;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2830
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2831
	if ( $wp_current_db_version >= 22006 && get_option( 'link_manager_enabled' ) && ! $wpdb->get_var( "SELECT link_id FROM $wpdb->links LIMIT 1" ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2832
		update_option( 'link_manager_enabled', 0 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2833
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2834
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2835
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2836
 * Runs before the schema is upgraded.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2837
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2838
 * @since 2.9.0
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2839
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2840
 * @global int  $wp_current_db_version
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2841
 * @global wpdb $wpdb WordPress database abstraction object.
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2842
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2843
function pre_schema_upgrade() {
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2844
	global $wp_current_db_version, $wpdb;
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2845
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2846
	// Upgrade versions prior to 2.9
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2847
	if ( $wp_current_db_version < 11557 ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2848
		// Delete duplicate options. Keep the option with the highest option_id.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2849
		$wpdb->query("DELETE o1 FROM $wpdb->options AS o1 JOIN $wpdb->options AS o2 USING (`option_name`) WHERE o2.option_id > o1.option_id");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2850
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2851
		// Drop the old primary key and add the new.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2852
		$wpdb->query("ALTER TABLE $wpdb->options DROP PRIMARY KEY, ADD PRIMARY KEY(option_id)");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2853
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2854
		// Drop the old option_name index. dbDelta() doesn't do the drop.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2855
		$wpdb->query("ALTER TABLE $wpdb->options DROP INDEX option_name");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2856
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2857
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2858
	// Multisite schema upgrades.
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2859
	if ( $wp_current_db_version < 25448 && is_multisite() && wp_should_upgrade_global_tables() ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2860
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2861
		// Upgrade versions prior to 3.7
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2862
		if ( $wp_current_db_version < 25179 ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2863
			// New primary key for signups.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2864
			$wpdb->query( "ALTER TABLE $wpdb->signups ADD signup_id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST" );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2865
			$wpdb->query( "ALTER TABLE $wpdb->signups DROP INDEX domain" );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2866
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2867
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2868
		if ( $wp_current_db_version < 25448 ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2869
			// Convert archived from enum to tinyint.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2870
			$wpdb->query( "ALTER TABLE $wpdb->blogs CHANGE COLUMN archived archived varchar(1) NOT NULL default '0'" );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2871
			$wpdb->query( "ALTER TABLE $wpdb->blogs CHANGE COLUMN archived archived tinyint(2) NOT NULL default 0" );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2872
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2873
	}
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2874
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2875
	// Upgrade versions prior to 4.2.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2876
	if ( $wp_current_db_version < 31351 ) {
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2877
		if ( ! is_multisite() && wp_should_upgrade_global_tables() ) {
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2878
			$wpdb->query( "ALTER TABLE $wpdb->usermeta DROP INDEX meta_key, ADD INDEX meta_key(meta_key(191))" );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2879
		}
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2880
		$wpdb->query( "ALTER TABLE $wpdb->terms DROP INDEX slug, ADD INDEX slug(slug(191))" );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2881
		$wpdb->query( "ALTER TABLE $wpdb->terms DROP INDEX name, ADD INDEX name(name(191))" );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2882
		$wpdb->query( "ALTER TABLE $wpdb->commentmeta DROP INDEX meta_key, ADD INDEX meta_key(meta_key(191))" );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2883
		$wpdb->query( "ALTER TABLE $wpdb->postmeta DROP INDEX meta_key, ADD INDEX meta_key(meta_key(191))" );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2884
		$wpdb->query( "ALTER TABLE $wpdb->posts DROP INDEX post_name, ADD INDEX post_name(post_name(191))" );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
  2885
	}
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2886
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2887
	// Upgrade versions prior to 4.4.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2888
	if ( $wp_current_db_version < 34978 ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2889
		// If compatible termmeta table is found, use it, but enforce a proper index and update collation.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2890
		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->termmeta}'" ) && $wpdb->get_results( "SHOW INDEX FROM {$wpdb->termmeta} WHERE Column_name = 'meta_key'" ) ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2891
			$wpdb->query( "ALTER TABLE $wpdb->termmeta DROP INDEX meta_key, ADD INDEX meta_key(meta_key(191))" );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2892
			maybe_convert_table_to_utf8mb4( $wpdb->termmeta );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2893
		}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2894
	}
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2895
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2896
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2897
if ( !function_exists( 'install_global_terms' ) ) :
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2898
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2899
 * Install global terms.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2900
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2901
 * @since 3.0.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2902
 *
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2903
 * @global wpdb   $wpdb
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2904
 * @global string $charset_collate
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2905
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2906
function install_global_terms() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2907
	global $wpdb, $charset_collate;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2908
	$ms_queries = "
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2909
CREATE TABLE $wpdb->sitecategories (
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2910
  cat_ID bigint(20) NOT NULL auto_increment,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2911
  cat_name varchar(55) NOT NULL default '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2912
  category_nicename varchar(200) NOT NULL default '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2913
  last_updated timestamp NOT NULL,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2914
  PRIMARY KEY  (cat_ID),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2915
  KEY category_nicename (category_nicename),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2916
  KEY last_updated (last_updated)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2917
) $charset_collate;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2918
";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2919
// now create tables
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2920
	dbDelta( $ms_queries );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2921
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2922
endif;
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2923
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2924
/**
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2925
 * Determine if global tables should be upgraded.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2926
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2927
 * This function performs a series of checks to ensure the environment allows
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2928
 * for the safe upgrading of global WordPress database tables. It is necessary
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2929
 * because global tables will commonly grow to millions of rows on large
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2930
 * installations, and the ability to control their upgrade routines can be
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2931
 * critical to the operation of large networks.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2932
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2933
 * In a future iteration, this function may use `wp_is_large_network()` to more-
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2934
 * intelligently prevent global table upgrades. Until then, we make sure
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2935
 * WordPress is on the main site of the main network, to avoid running queries
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2936
 * more than once in multi-site or multi-network environments.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2937
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2938
 * @since 4.3.0
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2939
 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2940
 * @return bool Whether to run the upgrade routines on global tables.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2941
 */
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2942
function wp_should_upgrade_global_tables() {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2943
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2944
	// Return false early if explicitly not upgrading
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2945
	if ( defined( 'DO_NOT_UPGRADE_GLOBAL_TABLES' ) ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2946
		return false;
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2947
	}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2948
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2949
	// Assume global tables should be upgraded
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2950
	$should_upgrade = true;
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2951
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2952
	// Set to false if not on main network (does not matter if not multi-network)
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2953
	if ( ! is_main_network() ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2954
		$should_upgrade = false;
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2955
	}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2956
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2957
	// Set to false if not on main site of current network (does not matter if not multi-site)
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2958
	if ( ! is_main_site() ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2959
		$should_upgrade = false;
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2960
	}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2961
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2962
	/**
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2963
	 * Filters if upgrade routines should be run on global tables.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2964
	 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2965
	 * @param bool $should_upgrade Whether to run the upgrade routines on global tables.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2966
	 */
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2967
	return apply_filters( 'wp_should_upgrade_global_tables', $should_upgrade );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
  2968
}