";
- $response = wp_remote_get( trailingslashit( $siteurl ) . "wp-admin/upgrade.php?step=upgrade_db", array( 'timeout' => 120, 'httpversion' => '1.1' ) );
+ $response = wp_remote_get( $upgrade_url, array( 'timeout' => 120, 'httpversion' => '1.1' ) );
if ( is_wp_error( $response ) )
wp_die( sprintf( __( 'Warning! Problem updating %1$s. Your server may not be able to connect to sites running on it. Error message: %2$s' ), $siteurl, $response->get_error_message() ) );
do_action( 'after_mu_upgrade', $response );
diff --git a/wp-includes/class-wp-theme.php b/wp-includes/class-wp-theme.php
index 049bfb4bd2..fb8dbc369b 100644
--- a/wp-includes/class-wp-theme.php
+++ b/wp-includes/class-wp-theme.php
@@ -1109,18 +1109,24 @@ final class WP_Theme implements ArrayAccess {
$current = $blog_id == get_current_blog_id();
- if ( $current )
+ if ( $current ) {
$allowed_themes[ $blog_id ] = get_option( 'allowedthemes' );
- else
- $allowed_themes[ $blog_id ] = get_blog_option( $blog_id, 'allowedthemes' );
+ } else {
+ switch_to_blog( $blog_id );
+ $allowed_themes[ $blog_id ] = get_option( 'allowedthemes' );
+ restore_current_blog();
+ }
// This is all super old MU back compat joy.
// 'allowedthemes' keys things by stylesheet. 'allowed_themes' keyed things by name.
if ( false === $allowed_themes[ $blog_id ] ) {
- if ( $current )
+ if ( $current ) {
$allowed_themes[ $blog_id ] = get_option( 'allowed_themes' );
- else
- $allowed_themes[ $blog_id ] = get_blog_option( $blog_id, 'allowed_themes' );
+ } else {
+ switch_to_blog( $blog_id );
+ $allowed_themes[ $blog_id ] = get_option( 'allowed_themes' );
+ restore_current_blog();
+ }
if ( ! is_array( $allowed_themes[ $blog_id ] ) || empty( $allowed_themes[ $blog_id ] ) ) {
$allowed_themes[ $blog_id ] = array();
@@ -1139,8 +1145,10 @@ final class WP_Theme implements ArrayAccess {
update_option( 'allowedthemes', $allowed_themes[ $blog_id ] );
delete_option( 'allowed_themes' );
} else {
- update_blog_option( $blog_id, 'allowedthemes', $allowed_themes[ $blog_id ] );
- delete_blog_option( $blog_id, 'allowed_themes' );
+ switch_to_blog( $blog_id );
+ update_option( 'allowedthemes', $allowed_themes[ $blog_id ] );
+ delete_option( 'allowed_themes' );
+ restore_current_blog();
}
}
}
diff --git a/wp-includes/class-wp-xmlrpc-server.php b/wp-includes/class-wp-xmlrpc-server.php
index b65e4fbc35..8965572029 100644
--- a/wp-includes/class-wp-xmlrpc-server.php
+++ b/wp-includes/class-wp-xmlrpc-server.php
@@ -475,13 +475,15 @@ class wp_xmlrpc_server extends IXR_Server {
$blog_id = $blog->userblog_id;
$is_admin = current_user_can_for_blog( $blog_id, 'manage_options' );
+ switch_to_blog( $blog_id );
$struct[] = array(
'isAdmin' => $is_admin,
- 'url' => get_home_url( $blog_id, '/' ),
+ 'url' => home_url( '/' ),
'blogid' => (string) $blog_id,
- 'blogName' => get_blog_option( $blog_id, 'blogname' ),
- 'xmlrpc' => get_site_url( $blog_id, 'xmlrpc.php' )
+ 'blogName' => get_option( 'blogname' ),
+ 'xmlrpc' => site_url( 'xmlrpc.php' )
);
+ restore_current_blog();
}
return $struct;
diff --git a/wp-includes/link-template.php b/wp-includes/link-template.php
index b458b69c11..8097a657cb 100644
--- a/wp-includes/link-template.php
+++ b/wp-includes/link-template.php
@@ -1896,10 +1896,13 @@ function get_home_url( $blog_id = null, $path = '', $scheme = null ) {
if ( !in_array( $scheme, array( 'http', 'https', 'relative' ) ) )
$scheme = is_ssl() && !is_admin() ? 'https' : 'http';
- if ( empty( $blog_id ) || !is_multisite() )
+ if ( empty( $blog_id ) || !is_multisite() ) {
$url = get_option( 'home' );
- else
- $url = get_blog_option( $blog_id, 'home' );
+ } else {
+ switch_to_blog( $blog_id );
+ $url = get_option( 'home' );
+ restore_current_blog();
+ }
if ( 'relative' == $scheme )
$url = preg_replace( '#^.+://[^/]*#', '', $url );
@@ -1961,10 +1964,13 @@ function get_site_url( $blog_id = null, $path = '', $scheme = null ) {
$scheme = ( is_ssl() ? 'https' : 'http' );
}
- if ( empty( $blog_id ) || !is_multisite() )
+ if ( empty( $blog_id ) || !is_multisite() ) {
$url = get_option( 'siteurl' );
- else
- $url = get_blog_option( $blog_id, 'siteurl' );
+ } else {
+ switch_to_blog( $blog_id );
+ $url = get_option( 'siteurl' );
+ restore_current_blog();
+ }
if ( 'relative' == $scheme )
$url = preg_replace( '#^.+://[^/]*#', '', $url );
diff --git a/wp-includes/ms-blogs.php b/wp-includes/ms-blogs.php
index fdd40e8c32..9ebe24e7f3 100644
--- a/wp-includes/ms-blogs.php
+++ b/wp-includes/ms-blogs.php
@@ -222,9 +222,11 @@ function get_blog_details( $fields, $get_all = true ) {
return $details;
}
- $details->blogname = get_blog_option( $blog_id, 'blogname' );
- $details->siteurl = get_blog_option( $blog_id, 'siteurl' );
- $details->post_count = get_blog_option( $blog_id, 'post_count' );
+ switch_to_blog( $blog_id );
+ $details->blogname = get_option( 'blogname' );
+ $details->siteurl = get_option( 'siteurl' );
+ $details->post_count = get_option( 'post_count' );
+ restore_current_blog();
$details = apply_filters( 'blog_details', $details );
@@ -298,135 +300,17 @@ function update_blog_details( $blog_id, $details = array() ) {
do_action( "make_ham_blog", $blog_id );
}
- if ( isset($details[ 'public' ]) )
- update_blog_option( $blog_id, 'blog_public', $details[ 'public' ] );
+ if ( isset($details[ 'public' ]) ) {
+ switch_to_blog( $blog_id );
+ update_option( 'blog_public', $details[ 'public' ] );
+ restore_current_blog();
+ }
refresh_blog_details($blog_id);
return true;
}
-/**
- * Retrieve option value for a given blog id based on name of option.
- *
- * If the option does not exist or does not have a value, then the return value
- * will be false. This is useful to check whether you need to install an option
- * and is commonly used during installation of plugin options and to test
- * whether upgrading is required.
- *
- * If the option was serialized then it will be unserialized when it is returned.
- *
- * @since MU
- *
- * @param int $id A blog ID. Can be null to refer to the current blog.
- * @param string $option Name of option to retrieve. Expected to not be SQL-escaped.
- * @param mixed $default Optional. Default value to return if the option does not exist.
- * @return mixed Value set for the option.
- */
-function get_blog_option( $id, $option, $default = false ) {
- $id = (int) $id;
-
- if ( empty( $id ) )
- $id = get_current_blog_id();
-
- if ( get_current_blog_id() == $id )
- return get_option( $option, $default );
-
- switch_to_blog( $id );
- $option = get_option( $option, $default );
- restore_current_blog();
-
- return $option;
-}
-
-/**
- * Add a new option for a given blog id.
- *
- * You do not need to serialize values. If the value needs to be serialized, then
- * it will be serialized before it is inserted into the database. Remember,
- * resources can not be serialized or added as an option.
- *
- * You can create options without values and then update the values later.
- * Existing options will not be updated and checks are performed to ensure that you
- * aren't adding a protected WordPress option. Care should be taken to not name
- * options the same as the ones which are protected.
- *
- * @since MU
- *
- * @param int $id A blog ID. Can be null to refer to the current blog.
- * @param string $option Name of option to add. Expected to not be SQL-escaped.
- * @param mixed $value Optional. Option value, can be anything. Expected to not be SQL-escaped.
- * @return bool False if option was not added and true if option was added.
- */
-function add_blog_option( $id, $option, $value ) {
- $id = (int) $id;
-
- if ( empty( $id ) )
- $id = get_current_blog_id();
-
- if ( get_current_blog_id() == $id )
- return add_option( $option, $value );
-
- switch_to_blog( $id );
- $return = add_option( $option, $value );
- restore_current_blog();
-
- return $return;
-}
-
-/**
- * Removes option by name for a given blog id. Prevents removal of protected WordPress options.
- *
- * @since MU
- *
- * @param int $id A blog ID. Can be null to refer to the current blog.
- * @param string $option Name of option to remove. Expected to not be SQL-escaped.
- * @return bool True, if option is successfully deleted. False on failure.
- */
-function delete_blog_option( $id, $option ) {
- $id = (int) $id;
-
- if ( empty( $id ) )
- $id = get_current_blog_id();
-
- if ( get_current_blog_id() == $id )
- return delete_option( $option );
-
- switch_to_blog( $id );
- $return = delete_option( $option );
- restore_current_blog();
-
- return $return;
-}
-
-/**
- * Update an option for a particular blog.
- *
- * @since MU
- *
- * @param int $id The blog id
- * @param string $option The option key
- * @param mixed $value The option value
- * @return bool True on success, false on failrue.
- */
-function update_blog_option( $id, $option, $value, $deprecated = null ) {
- $id = (int) $id;
-
- if ( null !== $deprecated )
- _deprecated_argument( __FUNCTION__, '3.1' );
-
- if ( get_current_blog_id() == $id )
- return update_option( $option, $value );
-
- switch_to_blog( $id );
- $return = update_option( $option, $value );
- restore_current_blog();
-
- refresh_blog_details( $id );
-
- return $return;
-}
-
/**
* Switch the current blog.
*
diff --git a/wp-includes/ms-deprecated.php b/wp-includes/ms-deprecated.php
index 9b9c43f9d6..03f827e0a4 100644
--- a/wp-includes/ms-deprecated.php
+++ b/wp-includes/ms-deprecated.php
@@ -270,3 +270,136 @@ function wpmu_admin_redirect_add_updated_param( $url = '' ) {
}
return $url;
}
+
+/**
+ * Retrieve option value for a given blog id based on name of option.
+ *
+ * If the option does not exist or does not have a value, then the return value
+ * will be false. This is useful to check whether you need to install an option
+ * and is commonly used during installation of plugin options and to test
+ * whether upgrading is required.
+ *
+ * If the option was serialized then it will be unserialized when it is returned.
+ *
+ * @since MU
+ * @deprecated 3.5.0
+ *
+ * @param int $id A blog ID. Can be null to refer to the current blog.
+ * @param string $option Name of option to retrieve. Expected to not be SQL-escaped.
+ * @param mixed $default Optional. Default value to return if the option does not exist.
+ * @return mixed Value set for the option.
+ */
+function get_blog_option( $id, $option, $default = false ) {
+ _deprecated_function( __FUNCTION__, '3.5' );
+
+ $id = (int) $id;
+
+ if ( empty( $id ) )
+ $id = get_current_blog_id();
+
+ if ( get_current_blog_id() == $id )
+ return get_option( $option, $default );
+
+ switch_to_blog( $id );
+ $option = get_option( $option, $default );
+ restore_current_blog();
+
+ return $option;
+}
+
+/**
+ * Add a new option for a given blog id.
+ *
+ * You do not need to serialize values. If the value needs to be serialized, then
+ * it will be serialized before it is inserted into the database. Remember,
+ * resources can not be serialized or added as an option.
+ *
+ * You can create options without values and then update the values later.
+ * Existing options will not be updated and checks are performed to ensure that you
+ * aren't adding a protected WordPress option. Care should be taken to not name
+ * options the same as the ones which are protected.
+ *
+ * @since MU
+ * @deprecated 3.5.0
+ *
+ * @param int $id A blog ID. Can be null to refer to the current blog.
+ * @param string $option Name of option to add. Expected to not be SQL-escaped.
+ * @param mixed $value Optional. Option value, can be anything. Expected to not be SQL-escaped.
+ * @return bool False if option was not added and true if option was added.
+ */
+function add_blog_option( $id, $option, $value ) {
+ _deprecated_function( __FUNCTION__, '3.5' );
+
+ $id = (int) $id;
+
+ if ( empty( $id ) )
+ $id = get_current_blog_id();
+
+ if ( get_current_blog_id() == $id )
+ return add_option( $option, $value );
+
+ switch_to_blog( $id );
+ $return = add_option( $option, $value );
+ restore_current_blog();
+
+ return $return;
+}
+
+/**
+ * Removes option by name for a given blog id. Prevents removal of protected WordPress options.
+ *
+ * @since MU
+ * @deprecated 3.5.0
+ *
+ * @param int $id A blog ID. Can be null to refer to the current blog.
+ * @param string $option Name of option to remove. Expected to not be SQL-escaped.
+ * @return bool True, if option is successfully deleted. False on failure.
+ */
+function delete_blog_option( $id, $option ) {
+ _deprecated_function( __FUNCTION__, '3.5' );
+
+ $id = (int) $id;
+
+ if ( empty( $id ) )
+ $id = get_current_blog_id();
+
+ if ( get_current_blog_id() == $id )
+ return delete_option( $option );
+
+ switch_to_blog( $id );
+ $return = delete_option( $option );
+ restore_current_blog();
+
+ return $return;
+}
+
+/**
+ * Update an option for a particular blog.
+ *
+ * @since MU
+ * @deprecated 3.5.0
+ *
+ * @param int $id The blog id
+ * @param string $option The option key
+ * @param mixed $value The option value
+ * @return bool True on success, false on failrue.
+ */
+function update_blog_option( $id, $option, $value, $deprecated = null ) {
+ _deprecated_function( __FUNCTION__, '3.5' );
+
+ $id = (int) $id;
+
+ if ( null !== $deprecated )
+ _deprecated_argument( __FUNCTION__, '3.1' );
+
+ if ( get_current_blog_id() == $id )
+ return update_option( $option, $value );
+
+ switch_to_blog( $id );
+ $return = update_option( $option, $value );
+ restore_current_blog();
+
+ refresh_blog_details( $id );
+
+ return $return;
+}