Archived
Updates
This commit is contained in:
1 parent
70d2335bba
commit
7428b67da5
1086 files changed
+94145
-59082
No files matched your search
+313
-89
@@ -2,7 +2,7 @@
|
||||
/**
|
||||
* WordPress Upgrade API
|
||||
*
|
||||
* Most of the functions are pluggable and can be overwritten
|
||||
* Most of the functions are pluggable and can be overwritten.
|
||||
*
|
||||
* @package WordPress
|
||||
* @subpackage Administration
|
||||
@@ -20,20 +20,21 @@ require_once(ABSPATH . 'wp-admin/includes/schema.php');
|
||||
|
||||
if ( !function_exists('wp_install') ) :
|
||||
/**
|
||||
* Installs the blog
|
||||
* Installs the site.
|
||||
*
|
||||
* {@internal Missing Long Description}}
|
||||
* Runs the required functions to set up and populate the database,
|
||||
* including primary admin user and initial options.
|
||||
*
|
||||
* @since 2.1.0
|
||||
*
|
||||
* @param string $blog_title Blog title.
|
||||
* @param string $user_name User's username.
|
||||
* @param string $user_email User's email.
|
||||
* @param bool $public Whether blog is public.
|
||||
* @param null $deprecated Optional. Not used.
|
||||
* @param string $user_password Optional. User's chosen password. Will default to a random password.
|
||||
* @param string $language Optional. Language chosen.
|
||||
* @return array Array keys 'url', 'user_id', 'password', 'password_message'.
|
||||
* @param string $blog_title Blog title.
|
||||
* @param string $user_name User's username.
|
||||
* @param string $user_email User's email.
|
||||
* @param bool $public Whether blog is public.
|
||||
* @param string $deprecated Optional. Not used.
|
||||
* @param string $user_password Optional. User's chosen password. Default empty (random password).
|
||||
* @param string $language Optional. Language chosen. Default empty.
|
||||
* @return array Array keys 'url', 'user_id', 'password', and 'password_message'.
|
||||
*/
|
||||
function wp_install( $blog_title, $user_name, $user_email, $public, $deprecated = '', $user_password = '', $language = '' ) {
|
||||
if ( !empty( $deprecated ) )
|
||||
@@ -74,7 +75,7 @@ function wp_install( $blog_title, $user_name, $user_email, $public, $deprecated
|
||||
$user_id = wp_create_user($user_name, $user_password, $user_email);
|
||||
update_user_option($user_id, 'default_password_nag', true, true);
|
||||
$email_password = true;
|
||||
} else if ( !$user_id ) {
|
||||
} elseif ( ! $user_id ) {
|
||||
// Password has been provided
|
||||
$message = '<em>'.__('Your chosen password.').'</em>';
|
||||
$user_id = wp_create_user($user_name, $user_password, $user_email);
|
||||
@@ -87,6 +88,8 @@ function wp_install( $blog_title, $user_name, $user_email, $public, $deprecated
|
||||
|
||||
wp_install_defaults($user_id);
|
||||
|
||||
wp_install_maybe_enable_pretty_permalinks();
|
||||
|
||||
flush_rewrite_rules();
|
||||
|
||||
wp_new_blog_notification($blog_title, $guessurl, $user_id, ($email_password ? $user_password : __('The password you chose during the install.') ) );
|
||||
@@ -108,9 +111,10 @@ endif;
|
||||
|
||||
if ( !function_exists('wp_install_defaults') ) :
|
||||
/**
|
||||
* {@internal Missing Short Description}}
|
||||
* Creates the initial content for a newly-installed site.
|
||||
*
|
||||
* {@internal Missing Long Description}}
|
||||
* Adds the default "Uncategorized" category, the first post (with comment),
|
||||
* first page, and default widgets for default theme for the current version.
|
||||
*
|
||||
* @since 2.1.0
|
||||
*
|
||||
@@ -140,9 +144,9 @@ function wp_install_defaults( $user_id ) {
|
||||
$cat_tt_id = $wpdb->insert_id;
|
||||
|
||||
// First post
|
||||
$now = date('Y-m-d H:i:s');
|
||||
$now_gmt = gmdate('Y-m-d H:i:s');
|
||||
$first_post_guid = get_option('home') . '/?p=1';
|
||||
$now = current_time( 'mysql' );
|
||||
$now_gmt = current_time( 'mysql', 1 );
|
||||
$first_post_guid = get_option( 'home' ) . '/?p=1';
|
||||
|
||||
if ( is_multisite() ) {
|
||||
$first_post = get_site_option( 'first_post' );
|
||||
@@ -234,7 +238,7 @@ As a new WordPress user, you should go to <a href=\"%s\">your dashboard</a> to d
|
||||
update_option( 'widget_archives', array ( 2 => array ( 'title' => '', 'count' => 0, 'dropdown' => 0 ), '_multiwidget' => 1 ) );
|
||||
update_option( 'widget_categories', array ( 2 => array ( 'title' => '', 'count' => 0, 'hierarchical' => 0, 'dropdown' => 0 ), '_multiwidget' => 1 ) );
|
||||
update_option( 'widget_meta', array ( 2 => array ( 'title' => '' ), '_multiwidget' => 1 ) );
|
||||
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 ) );
|
||||
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', ), 'array_version' => 3 ) );
|
||||
|
||||
if ( ! is_multisite() )
|
||||
update_user_meta( $user_id, 'show_welcome_panel', 1 );
|
||||
@@ -260,24 +264,100 @@ As a new WordPress user, you should go to <a href=\"%s\">your dashboard</a> to d
|
||||
}
|
||||
endif;
|
||||
|
||||
/**
|
||||
* Maybe enable pretty permalinks on install.
|
||||
*
|
||||
* If after enabling pretty permalinks don't work, fallback to query-string permalinks.
|
||||
*
|
||||
* @since 4.2.0
|
||||
*
|
||||
* @global WP_Rewrite $wp_rewrite WordPress rewrite component.
|
||||
*
|
||||
* @return bool Whether pretty permalinks are enabled. False otherwise.
|
||||
*/
|
||||
function wp_install_maybe_enable_pretty_permalinks() {
|
||||
global $wp_rewrite;
|
||||
|
||||
// Bail if a permalink structure is already enabled.
|
||||
if ( get_option( 'permalink_structure' ) ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
* The Permalink structures to attempt.
|
||||
*
|
||||
* The first is designed for mod_rewrite or nginx rewriting.
|
||||
*
|
||||
* The second is PATHINFO-based permalinks for web server configurations
|
||||
* without a true rewrite module enabled.
|
||||
*/
|
||||
$permalink_structures = array(
|
||||
'/%year%/%monthnum%/%day%/%postname%/',
|
||||
'/index.php/%year%/%monthnum%/%day%/%postname%/'
|
||||
);
|
||||
|
||||
foreach ( (array) $permalink_structures as $permalink_structure ) {
|
||||
$wp_rewrite->set_permalink_structure( $permalink_structure );
|
||||
|
||||
/*
|
||||
* Flush rules with the hard option to force refresh of the web-server's
|
||||
* rewrite config file (e.g. .htaccess or web.config).
|
||||
*/
|
||||
$wp_rewrite->flush_rules( true );
|
||||
|
||||
// Test against a real WordPress Post, or if none were created, a random 404 page.
|
||||
$test_url = get_permalink( 1 );
|
||||
|
||||
if ( ! $test_url ) {
|
||||
$test_url = home_url( '/wordpress-check-for-rewrites/' );
|
||||
}
|
||||
|
||||
/*
|
||||
* Send a request to the site, and check whether
|
||||
* the 'x-pingback' header is returned as expected.
|
||||
*
|
||||
* Uses wp_remote_get() instead of wp_remote_head() because web servers
|
||||
* can block head requests.
|
||||
*/
|
||||
$response = wp_remote_get( $test_url, array( 'timeout' => 5 ) );
|
||||
$x_pingback_header = wp_remote_retrieve_header( $response, 'x-pingback' );
|
||||
$pretty_permalinks = $x_pingback_header && $x_pingback_header === get_bloginfo( 'pingback_url' );
|
||||
|
||||
if ( $pretty_permalinks ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* If it makes it this far, pretty permalinks failed.
|
||||
* Fallback to query-string permalinks.
|
||||
*/
|
||||
$wp_rewrite->set_permalink_structure( '' );
|
||||
$wp_rewrite->flush_rules( true );
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( !function_exists('wp_new_blog_notification') ) :
|
||||
/**
|
||||
* {@internal Missing Short Description}}
|
||||
* Notifies the site admin that the setup is complete.
|
||||
*
|
||||
* {@internal Missing Long Description}}
|
||||
* Sends an email with wp_mail to the new administrator that the site setup is complete,
|
||||
* and provides them with a record of their login credentials.
|
||||
*
|
||||
* @since 2.1.0
|
||||
*
|
||||
* @param string $blog_title Blog title.
|
||||
* @param string $blog_url Blog url.
|
||||
* @param int $user_id User ID.
|
||||
* @param string $password User's Password.
|
||||
* @param string $blog_url Blog url.
|
||||
* @param int $user_id User ID.
|
||||
* @param string $password User's Password.
|
||||
*/
|
||||
function wp_new_blog_notification($blog_title, $blog_url, $user_id, $password) {
|
||||
$user = new WP_User( $user_id );
|
||||
$email = $user->user_email;
|
||||
$name = $user->user_login;
|
||||
$message = sprintf(__("Your new WordPress site has been successfully set up at:
|
||||
$login_url = wp_login_url();
|
||||
$message = sprintf( __( "Your new WordPress site has been successfully set up at:
|
||||
|
||||
%1\$s
|
||||
|
||||
@@ -285,12 +365,13 @@ You can log in to the administrator account with the following information:
|
||||
|
||||
Username: %2\$s
|
||||
Password: %3\$s
|
||||
Log in here: %4\$s
|
||||
|
||||
We hope you enjoy your new site. Thanks!
|
||||
|
||||
--The WordPress Team
|
||||
https://wordpress.org/
|
||||
"), $blog_url, $name, $password);
|
||||
"), $blog_url, $name, $password, $login_url );
|
||||
|
||||
@wp_mail($email, __('New WordPress Site'), $message);
|
||||
}
|
||||
@@ -298,13 +379,13 @@ endif;
|
||||
|
||||
if ( !function_exists('wp_upgrade') ) :
|
||||
/**
|
||||
* Run WordPress Upgrade functions.
|
||||
* Runs WordPress Upgrade functions.
|
||||
*
|
||||
* {@internal Missing Long Description}}
|
||||
* Upgrades the database if needed during a site update.
|
||||
*
|
||||
* @since 2.1.0
|
||||
*
|
||||
* @return null
|
||||
* @return null If no update is necessary or site isn't completely installed, null.
|
||||
*/
|
||||
function wp_upgrade() {
|
||||
global $wp_current_db_version, $wp_db_version, $wpdb;
|
||||
@@ -349,9 +430,12 @@ endif;
|
||||
/**
|
||||
* Functions to be called in install and upgrade scripts.
|
||||
*
|
||||
* {@internal Missing Long Description}}
|
||||
* Contains conditional checks to determine which upgrade scripts to run,
|
||||
* based on database version and WP version being updated-to.
|
||||
*
|
||||
* @since 1.0.1
|
||||
*
|
||||
* @return null If no update is necessary, null.
|
||||
*/
|
||||
function upgrade_all() {
|
||||
global $wp_current_db_version, $wp_db_version;
|
||||
@@ -440,6 +524,12 @@ function upgrade_all() {
|
||||
if ( $wp_current_db_version < 29630 )
|
||||
upgrade_400();
|
||||
|
||||
if ( $wp_current_db_version < 31351 )
|
||||
upgrade_420();
|
||||
|
||||
if ( $wp_current_db_version < 31533 )
|
||||
upgrade_421();
|
||||
|
||||
maybe_disable_link_manager();
|
||||
|
||||
maybe_disable_automattic_widgets();
|
||||
@@ -483,6 +573,7 @@ function upgrade_100() {
|
||||
|
||||
$done_ids = $wpdb->get_results("SELECT DISTINCT post_id FROM $wpdb->post2cat");
|
||||
if ($done_ids) :
|
||||
$done_posts = array();
|
||||
foreach ($done_ids as $done_id) :
|
||||
$done_posts[] = $done_id->post_id;
|
||||
endforeach;
|
||||
@@ -767,7 +858,7 @@ function upgrade_210() {
|
||||
if ( 'static' == $status ) {
|
||||
$status = 'publish';
|
||||
$type = 'page';
|
||||
} else if ( 'attachment' == $status ) {
|
||||
} elseif ( 'attachment' == $status ) {
|
||||
$status = 'inherit';
|
||||
$type = 'attachment';
|
||||
}
|
||||
@@ -1327,7 +1418,55 @@ function upgrade_400() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute network level changes
|
||||
* Execute changes made in WordPress 4.2.0.
|
||||
*
|
||||
* @since 4.2.0
|
||||
*/
|
||||
function upgrade_420() {
|
||||
global $wp_current_db_version, $wpdb;
|
||||
|
||||
if ( $wp_current_db_version < 31351 && $wpdb->charset === 'utf8mb4' ) {
|
||||
if ( is_multisite() ) {
|
||||
$tables = $wpdb->tables( 'blog' );
|
||||
} else {
|
||||
$tables = $wpdb->tables( 'all' );
|
||||
}
|
||||
|
||||
foreach ( $tables as $table ) {
|
||||
maybe_convert_table_to_utf8mb4( $table );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute changes made in WordPress 4.2.1.
|
||||
*
|
||||
* @since 4.2.1
|
||||
*/
|
||||
function upgrade_421() {
|
||||
global $wp_current_db_version, $wpdb;
|
||||
|
||||
if ( $wp_current_db_version < 31533 ) {
|
||||
$content_length = $wpdb->get_col_length( $wpdb->comments, 'comment_content' );
|
||||
if ( ! $content_length ) {
|
||||
$content_length = 65535;
|
||||
}
|
||||
|
||||
$comments = $wpdb->get_results(
|
||||
"SELECT comment_ID FROM $wpdb->comments
|
||||
WHERE comment_date_gmt > '2015-04-26'
|
||||
AND CHAR_LENGTH( comment_content ) >= $content_length
|
||||
AND ( comment_content LIKE '%<%' OR comment_content LIKE '%>%' )"
|
||||
);
|
||||
|
||||
foreach ( $comments as $comment ) {
|
||||
wp_delete_comment( $comment->comment_ID, true );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Executes network-level upgrade routines.
|
||||
*
|
||||
* @since 3.0.0
|
||||
*/
|
||||
@@ -1422,16 +1561,34 @@ function upgrade_network() {
|
||||
update_site_option( 'illegal_names', $illegal_names );
|
||||
}
|
||||
}
|
||||
|
||||
// 4.2
|
||||
if ( $wp_current_db_version < 31351 && $wpdb->charset === 'utf8mb4' ) {
|
||||
if ( ! ( defined( 'DO_NOT_UPGRADE_GLOBAL_TABLES' ) && DO_NOT_UPGRADE_GLOBAL_TABLES ) ) {
|
||||
$wpdb->query( "ALTER TABLE $wpdb->usermeta DROP INDEX meta_key, ADD INDEX meta_key(meta_key(191))" );
|
||||
$wpdb->query( "ALTER TABLE $wpdb->site DROP INDEX domain, ADD INDEX domain(domain(140),path(51))" );
|
||||
$wpdb->query( "ALTER TABLE $wpdb->sitemeta DROP INDEX meta_key, ADD INDEX meta_key(meta_key(191))" );
|
||||
$wpdb->query( "ALTER TABLE $wpdb->signups DROP INDEX domain, ADD INDEX domain(domain(140),path(51))" );
|
||||
|
||||
$tables = $wpdb->tables( 'global' );
|
||||
|
||||
foreach ( $tables as $table ) {
|
||||
maybe_convert_table_to_utf8mb4( $table );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// The functions we use to actually do stuff
|
||||
|
||||
// General
|
||||
//
|
||||
// General functions we use to actually do stuff
|
||||
//
|
||||
|
||||
/**
|
||||
* {@internal Missing Short Description}}
|
||||
* Creates a table in the database if it doesn't already exist.
|
||||
*
|
||||
* {@internal Missing Long Description}}
|
||||
* This method checks for an existing database and creates a new one if it's not
|
||||
* already present. It doesn't rely on MySQL's "IF NOT EXISTS" statement, but chooses
|
||||
* to query all tables first and then run the SQL statement creating the table.
|
||||
*
|
||||
* @since 1.0.0
|
||||
*
|
||||
@@ -1459,9 +1616,7 @@ function maybe_create_table($table_name, $create_ddl) {
|
||||
}
|
||||
|
||||
/**
|
||||
* {@internal Missing Short Description}}
|
||||
*
|
||||
* {@internal Missing Long Description}}
|
||||
* Drops a specified index from a table.
|
||||
*
|
||||
* @since 1.0.1
|
||||
*
|
||||
@@ -1482,9 +1637,7 @@ function drop_index($table, $index) {
|
||||
}
|
||||
|
||||
/**
|
||||
* {@internal Missing Short Description}}
|
||||
*
|
||||
* {@internal Missing Long Description}}
|
||||
* Adds an index to a specified table.
|
||||
*
|
||||
* @since 1.0.1
|
||||
*
|
||||
@@ -1500,10 +1653,14 @@ function add_clean_index($table, $index) {
|
||||
}
|
||||
|
||||
/**
|
||||
** maybe_add_column()
|
||||
** Add column to db table if it doesn't exist.
|
||||
** Returns: true if already exists or on successful completion
|
||||
** false on error
|
||||
* Adds column to a database table if it doesn't already exist.
|
||||
*
|
||||
* @since 1.3.0
|
||||
*
|
||||
* @param string $table_name The table name to modify.
|
||||
* @param string $column_name The column name to add to the table.
|
||||
* @param string $create_ddl The SQL statement used to add the column.
|
||||
* @return True if already exists or on successful completion, false on error.
|
||||
*/
|
||||
function maybe_add_column($table_name, $column_name, $create_ddl) {
|
||||
global $wpdb;
|
||||
@@ -1525,12 +1682,42 @@ function maybe_add_column($table_name, $column_name, $create_ddl) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* If a table only contains utf8 or utf8mb4 columns, convert it to utf8mb4.
|
||||
*
|
||||
* @since 4.2.0
|
||||
*
|
||||
* @param string $table The table to convert.
|
||||
* @return bool true if the table was converted, false if it wasn't.
|
||||
*/
|
||||
function maybe_convert_table_to_utf8mb4( $table ) {
|
||||
global $wpdb;
|
||||
|
||||
$results = $wpdb->get_results( "SHOW FULL COLUMNS FROM `$table`" );
|
||||
if ( ! $results ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
foreach ( $results as $column ) {
|
||||
if ( $column->Collation ) {
|
||||
list( $charset ) = explode( '_', $column->Collation );
|
||||
$charset = strtolower( $charset );
|
||||
if ( 'utf8' !== $charset && 'utf8mb4' !== $charset ) {
|
||||
// Don't upgrade tables that have non-utf8 columns.
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $wpdb->query( "ALTER TABLE $table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci" );
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve all options as it was for 1.2.
|
||||
*
|
||||
* @since 1.2.0
|
||||
*
|
||||
* @return array List of options.
|
||||
* @return stdClass List of options.
|
||||
*/
|
||||
function get_alloptions_110() {
|
||||
global $wpdb;
|
||||
@@ -1546,8 +1733,9 @@ function get_alloptions_110() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Version of get_option that is private to install/upgrade.
|
||||
* Utility version of get_option that is private to install/upgrade.
|
||||
*
|
||||
* @ignore
|
||||
* @since 1.5.1
|
||||
* @access private
|
||||
*
|
||||
@@ -1575,14 +1763,12 @@ function __get_option($setting) {
|
||||
}
|
||||
|
||||
/**
|
||||
* {@internal Missing Short Description}}
|
||||
*
|
||||
* {@internal Missing Long Description}}
|
||||
* Filters for content to remove unnecessary slashes.
|
||||
*
|
||||
* @since 1.5.0
|
||||
*
|
||||
* @param string $content
|
||||
* @return string
|
||||
* @param string $content The content to modify.
|
||||
* @return string The de-slashed content.
|
||||
*/
|
||||
function deslash($content) {
|
||||
// Note: \\\ inside a regex denotes a single backslash.
|
||||
@@ -1606,15 +1792,18 @@ function deslash($content) {
|
||||
}
|
||||
|
||||
/**
|
||||
* {@internal Missing Short Description}}
|
||||
* Modifies the database based on specified SQL statements.
|
||||
*
|
||||
* {@internal Missing Long Description}}
|
||||
* Useful for creating new tables and updating existing tables to a new structure.
|
||||
*
|
||||
* @since 1.5.0
|
||||
*
|
||||
* @param unknown_type $queries
|
||||
* @param unknown_type $execute
|
||||
* @return unknown
|
||||
* @param string|array $queries Optional. The query to run. Can be multiple queries
|
||||
* in an array, or a string of queries separated by
|
||||
* semicolons. Default empty.
|
||||
* @param bool $execute Optional. Whether or not to execute the query right away.
|
||||
* Default true.
|
||||
* @return array Strings containing the results of the various update queries.
|
||||
*/
|
||||
function dbDelta( $queries = '', $execute = true ) {
|
||||
global $wpdb;
|
||||
@@ -1643,14 +1832,14 @@ function dbDelta( $queries = '', $execute = true ) {
|
||||
|
||||
// Create a tablename index for an array ($cqueries) of queries
|
||||
foreach($queries as $qry) {
|
||||
if (preg_match("|CREATE TABLE ([^ ]*)|", $qry, $matches)) {
|
||||
if ( preg_match( "|CREATE TABLE ([^ ]*)|", $qry, $matches ) ) {
|
||||
$cqueries[ trim( $matches[1], '`' ) ] = $qry;
|
||||
$for_update[$matches[1]] = 'Created table '.$matches[1];
|
||||
} else if (preg_match("|CREATE DATABASE ([^ ]*)|", $qry, $matches)) {
|
||||
array_unshift($cqueries, $qry);
|
||||
} else if (preg_match("|INSERT INTO ([^ ]*)|", $qry, $matches)) {
|
||||
} elseif ( preg_match( "|CREATE DATABASE ([^ ]*)|", $qry, $matches ) ) {
|
||||
array_unshift( $cqueries, $qry );
|
||||
} elseif ( preg_match( "|INSERT INTO ([^ ]*)|", $qry, $matches ) ) {
|
||||
$iqueries[] = $qry;
|
||||
} else if (preg_match("|UPDATE ([^ ]*)|", $qry, $matches)) {
|
||||
} elseif ( preg_match( "|UPDATE ([^ ]*)|", $qry, $matches ) ) {
|
||||
$iqueries[] = $qry;
|
||||
} else {
|
||||
// Unrecognized query type
|
||||
@@ -1784,7 +1973,7 @@ function dbDelta( $queries = '', $execute = true ) {
|
||||
|
||||
if ($tableindices) {
|
||||
// Clear the index array.
|
||||
unset($index_ary);
|
||||
$index_ary = array();
|
||||
|
||||
// For every index in the table.
|
||||
foreach ($tableindices as $tableindex) {
|
||||
@@ -1802,7 +1991,7 @@ function dbDelta( $queries = '', $execute = true ) {
|
||||
$index_string = '';
|
||||
if ($index_name == 'PRIMARY') {
|
||||
$index_string .= 'PRIMARY ';
|
||||
} else if($index_data['unique']) {
|
||||
} elseif ( $index_data['unique'] ) {
|
||||
$index_string .= 'UNIQUE ';
|
||||
}
|
||||
$index_string .= 'KEY ';
|
||||
@@ -1821,12 +2010,23 @@ function dbDelta( $queries = '', $execute = true ) {
|
||||
$index_columns .= '('.$column_data['subpart'].')';
|
||||
}
|
||||
}
|
||||
|
||||
// The alternative index string doesn't care about subparts
|
||||
$alt_index_columns = preg_replace( '/\([^)]*\)/', '', $index_columns );
|
||||
|
||||
// Add the column list to the index create string.
|
||||
$index_string .= ' ('.$index_columns.')';
|
||||
if (!(($aindex = array_search($index_string, $indices)) === false)) {
|
||||
unset($indices[$aindex]);
|
||||
// todo: Remove this?
|
||||
//echo "<pre style=\"border:1px solid #ccc;margin-top:5px;\">{$table}:<br />Found index:".$index_string."</pre>\n";
|
||||
$index_strings = array(
|
||||
"$index_string ($index_columns)",
|
||||
"$index_string ($alt_index_columns)",
|
||||
);
|
||||
|
||||
foreach( $index_strings as $index_string ) {
|
||||
if ( ! ( ( $aindex = array_search( $index_string, $indices ) ) === false ) ) {
|
||||
unset( $indices[ $aindex ] );
|
||||
break;
|
||||
// todo: Remove this?
|
||||
//echo "<pre style=\"border:1px solid #ccc;margin-top:5px;\">{$table}:<br />Found index:".$index_string."</pre>\n";
|
||||
}
|
||||
}
|
||||
// todo: Remove this?
|
||||
//else echo "<pre style=\"border:1px solid #ccc;margin-top:5px;\">{$table}:<br /><b>Did not find index:</b>".$index_string."<br />".print_r($indices, true)."</pre>\n";
|
||||
@@ -1857,11 +2057,16 @@ function dbDelta( $queries = '', $execute = true ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* {@internal Missing Short Description}}
|
||||
* Updates the database tables to a new schema.
|
||||
*
|
||||
* {@internal Missing Long Description}}
|
||||
* By default, updates all the tables to use the latest defined schema, but can also
|
||||
* be used to update a specific set of tables in wp_get_db_schema().
|
||||
*
|
||||
* @since 1.5.0
|
||||
*
|
||||
* @uses dbDelta
|
||||
*
|
||||
* @param string $tables Optional. Which set of tables to update. Default is 'all'.
|
||||
*/
|
||||
function make_db_current( $tables = 'all' ) {
|
||||
$alterations = dbDelta( $tables );
|
||||
@@ -1871,26 +2076,31 @@ function make_db_current( $tables = 'all' ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* {@internal Missing Short Description}}
|
||||
* Updates the database tables to a new schema, but without displaying results.
|
||||
*
|
||||
* {@internal Missing Long Description}}
|
||||
* By default, updates all the tables to use the latest defined schema, but can
|
||||
* also be used to update a specific set of tables in wp_get_db_schema().
|
||||
*
|
||||
* @since 1.5.0
|
||||
*
|
||||
* @see make_db_current()
|
||||
*
|
||||
* @param string $tables Optional. Which set of tables to update. Default is 'all'.
|
||||
*/
|
||||
function make_db_current_silent( $tables = 'all' ) {
|
||||
dbDelta( $tables );
|
||||
}
|
||||
|
||||
/**
|
||||
* {@internal Missing Short Description}}
|
||||
* Creates a site theme from an existing theme.
|
||||
*
|
||||
* {@internal Missing Long Description}}
|
||||
*
|
||||
* @since 1.5.0
|
||||
*
|
||||
* @param unknown_type $theme_name
|
||||
* @param unknown_type $template
|
||||
* @return unknown
|
||||
* @param string $theme_name The name of the theme.
|
||||
* @param string $template The directory name of the theme.
|
||||
* @return bool
|
||||
*/
|
||||
function make_site_theme_from_oldschool($theme_name, $template) {
|
||||
$home_path = get_home_path();
|
||||
@@ -1965,15 +2175,15 @@ function make_site_theme_from_oldschool($theme_name, $template) {
|
||||
}
|
||||
|
||||
/**
|
||||
* {@internal Missing Short Description}}
|
||||
* Creates a site theme from the default theme.
|
||||
*
|
||||
* {@internal Missing Long Description}}
|
||||
*
|
||||
* @since 1.5.0
|
||||
*
|
||||
* @param unknown_type $theme_name
|
||||
* @param unknown_type $template
|
||||
* @return unknown
|
||||
* @param string $theme_name The name of the theme.
|
||||
* @param string $template The directory name of the theme.
|
||||
* @return null|false
|
||||
*/
|
||||
function make_site_theme_from_default($theme_name, $template) {
|
||||
$site_dir = WP_CONTENT_DIR . "/themes/$template";
|
||||
@@ -2029,15 +2239,14 @@ function make_site_theme_from_default($theme_name, $template) {
|
||||
@closedir($images_dir);
|
||||
}
|
||||
|
||||
// Create a site theme from the default theme.
|
||||
/**
|
||||
* {@internal Missing Short Description}}
|
||||
* Creates a site theme.
|
||||
*
|
||||
* {@internal Missing Long Description}}
|
||||
*
|
||||
* @since 1.5.0
|
||||
*
|
||||
* @return unknown
|
||||
* @return false|string
|
||||
*/
|
||||
function make_site_theme() {
|
||||
// Name the theme after the blog.
|
||||
@@ -2110,9 +2319,7 @@ function translate_level_to_role($level) {
|
||||
}
|
||||
|
||||
/**
|
||||
* {@internal Missing Short Description}}
|
||||
*
|
||||
* {@internal Missing Long Description}}
|
||||
* Checks the version of the installed MySQL binary.
|
||||
*
|
||||
* @since 2.1.0
|
||||
*/
|
||||
@@ -2141,7 +2348,7 @@ function maybe_disable_automattic_widgets() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Disables the Link Manager on upgrade, if at the time of upgrade, no links exist in the DB.
|
||||
* Disables the Link Manager on upgrade if, at the time of upgrade, no links exist in the DB.
|
||||
*
|
||||
* @since 3.5.0
|
||||
*/
|
||||
@@ -2188,6 +2395,23 @@ function pre_schema_upgrade() {
|
||||
$wpdb->query( "ALTER TABLE $wpdb->blogs CHANGE COLUMN archived archived tinyint(2) NOT NULL default 0" );
|
||||
}
|
||||
}
|
||||
|
||||
if ( $wp_current_db_version < 30133 ) {
|
||||
// dbDelta() can recreate but can't drop the index.
|
||||
$wpdb->query( "ALTER TABLE $wpdb->terms DROP INDEX slug" );
|
||||
}
|
||||
|
||||
// Upgrade versions prior to 4.2.
|
||||
if ( $wp_current_db_version < 31351 ) {
|
||||
if ( ! is_multisite() ) {
|
||||
$wpdb->query( "ALTER TABLE $wpdb->usermeta DROP INDEX meta_key, ADD INDEX meta_key(meta_key(191))" );
|
||||
}
|
||||
$wpdb->query( "ALTER TABLE $wpdb->terms DROP INDEX slug, ADD INDEX slug(slug(191))" );
|
||||
$wpdb->query( "ALTER TABLE $wpdb->terms DROP INDEX name, ADD INDEX name(name(191))" );
|
||||
$wpdb->query( "ALTER TABLE $wpdb->commentmeta DROP INDEX meta_key, ADD INDEX meta_key(meta_key(191))" );
|
||||
$wpdb->query( "ALTER TABLE $wpdb->postmeta DROP INDEX meta_key, ADD INDEX meta_key(meta_key(191))" );
|
||||
$wpdb->query( "ALTER TABLE $wpdb->posts DROP INDEX post_name, ADD INDEX post_name(post_name(191))" );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in new issue
Block a user