WordPress.org

Make WordPress Core

Ticket #21432: 21432.2.diff

File 21432.2.diff, 17.7 KB (added by ryan, 3 years ago)
  • wp-includes/class-wp-theme.php

     
    11091109 
    11101110                $current = $blog_id == get_current_blog_id(); 
    11111111 
    1112                 if ( $current ) 
     1112                if ( $current ) { 
    11131113                        $allowed_themes[ $blog_id ] = get_option( 'allowedthemes' ); 
    1114                 else 
    1115                         $allowed_themes[ $blog_id ] = get_blog_option( $blog_id, 'allowedthemes' ); 
     1114                } else { 
     1115                        switch_to_blog( $blog_id ); 
     1116                        $allowed_themes[ $blog_id ] = get_option( 'allowedthemes' ); 
     1117                        restore_current_blog(); 
     1118                } 
    11161119 
    11171120                // This is all super old MU back compat joy. 
    11181121                // 'allowedthemes' keys things by stylesheet. 'allowed_themes' keyed things by name. 
    11191122                if ( false === $allowed_themes[ $blog_id ] ) { 
    1120                         if ( $current ) 
     1123                        if ( $current ) { 
    11211124                                $allowed_themes[ $blog_id ] = get_option( 'allowed_themes' ); 
    1122                         else 
    1123                                 $allowed_themes[ $blog_id ] = get_blog_option( $blog_id, 'allowed_themes' ); 
     1125                        } else { 
     1126                                switch_to_blog( $blog_id ); 
     1127                                $allowed_themes[ $blog_id ] = get_option( 'allowed_themes' ); 
     1128                                restore_current_blog(); 
     1129                        } 
    11241130 
    11251131                        if ( ! is_array( $allowed_themes[ $blog_id ] ) || empty( $allowed_themes[ $blog_id ] ) ) { 
    11261132                                $allowed_themes[ $blog_id ] = array(); 
     
    11391145                                        update_option( 'allowedthemes', $allowed_themes[ $blog_id ] ); 
    11401146                                        delete_option( 'allowed_themes' ); 
    11411147                                } else { 
    1142                                         update_blog_option( $blog_id, 'allowedthemes', $allowed_themes[ $blog_id ] ); 
    1143                                         delete_blog_option( $blog_id, 'allowed_themes' ); 
     1148                                        switch_to_blog( $blog_id ); 
     1149                                        update_option( 'allowedthemes', $allowed_themes[ $blog_id ] ); 
     1150                                        delete_option( 'allowed_themes' ); 
     1151                                        restore_current_blog(); 
    11441152                                } 
    11451153                        } 
    11461154                } 
  • wp-includes/ms-blogs.php

     
    222222                return $details; 
    223223        } 
    224224 
    225         $details->blogname              = get_blog_option( $blog_id, 'blogname' ); 
    226         $details->siteurl               = get_blog_option( $blog_id, 'siteurl' ); 
    227         $details->post_count    = get_blog_option( $blog_id, 'post_count' ); 
     225        switch_to_blog( $blog_id ); 
     226        $details->blogname              = get_option( 'blogname' ); 
     227        $details->siteurl               = get_option( 'siteurl' ); 
     228        $details->post_count    = get_option( 'post_count' ); 
     229        restore_current_blog(); 
    228230 
    229231        $details = apply_filters( 'blog_details', $details ); 
    230232 
     
    298300                        do_action( "make_ham_blog", $blog_id ); 
    299301        } 
    300302 
    301         if ( isset($details[ 'public' ]) ) 
    302                 update_blog_option( $blog_id, 'blog_public', $details[ 'public' ] ); 
     303        if ( isset($details[ 'public' ]) ) { 
     304                switch_to_blog( $blog_id ); 
     305                update_option( 'blog_public', $details[ 'public' ] ); 
     306                restore_current_blog(); 
     307        } 
    303308 
    304309        refresh_blog_details($blog_id); 
    305310 
     
    307312} 
    308313 
    309314/** 
    310  * Retrieve option value for a given blog id based on name of option. 
    311  * 
    312  * If the option does not exist or does not have a value, then the return value 
    313  * will be false. This is useful to check whether you need to install an option 
    314  * and is commonly used during installation of plugin options and to test 
    315  * whether upgrading is required. 
    316  * 
    317  * If the option was serialized then it will be unserialized when it is returned. 
    318  * 
    319  * @since MU 
    320  * 
    321  * @param int $id A blog ID. Can be null to refer to the current blog. 
    322  * @param string $option Name of option to retrieve. Expected to not be SQL-escaped. 
    323  * @param mixed $default Optional. Default value to return if the option does not exist. 
    324  * @return mixed Value set for the option. 
    325  */ 
    326 function get_blog_option( $id, $option, $default = false ) { 
    327         $id = (int) $id; 
    328  
    329         if ( empty( $id ) ) 
    330                 $id = get_current_blog_id(); 
    331  
    332         if ( get_current_blog_id() == $id ) 
    333                 return get_option( $option, $default ); 
    334  
    335         switch_to_blog( $id ); 
    336         $option = get_option( $option, $default ); 
    337         restore_current_blog(); 
    338  
    339         return $option; 
    340 } 
    341  
    342 /** 
    343  * Add a new option for a given blog id. 
    344  * 
    345  * You do not need to serialize values. If the value needs to be serialized, then 
    346  * it will be serialized before it is inserted into the database. Remember, 
    347  * resources can not be serialized or added as an option. 
    348  * 
    349  * You can create options without values and then update the values later. 
    350  * Existing options will not be updated and checks are performed to ensure that you 
    351  * aren't adding a protected WordPress option. Care should be taken to not name 
    352  * options the same as the ones which are protected. 
    353  * 
    354  * @since MU 
    355  * 
    356  * @param int $id A blog ID. Can be null to refer to the current blog. 
    357  * @param string $option Name of option to add. Expected to not be SQL-escaped. 
    358  * @param mixed $value Optional. Option value, can be anything. Expected to not be SQL-escaped. 
    359  * @return bool False if option was not added and true if option was added. 
    360  */ 
    361 function add_blog_option( $id, $option, $value ) { 
    362         $id = (int) $id; 
    363  
    364         if ( empty( $id ) ) 
    365                 $id = get_current_blog_id(); 
    366  
    367         if ( get_current_blog_id() == $id ) 
    368                 return add_option( $option, $value ); 
    369  
    370         switch_to_blog( $id ); 
    371         $return = add_option( $option, $value ); 
    372         restore_current_blog(); 
    373  
    374         return $return; 
    375 } 
    376  
    377 /** 
    378  * Removes option by name for a given blog id. Prevents removal of protected WordPress options. 
    379  * 
    380  * @since MU 
    381  * 
    382  * @param int $id A blog ID. Can be null to refer to the current blog. 
    383  * @param string $option Name of option to remove. Expected to not be SQL-escaped. 
    384  * @return bool True, if option is successfully deleted. False on failure. 
    385  */ 
    386 function delete_blog_option( $id, $option ) { 
    387         $id = (int) $id; 
    388  
    389         if ( empty( $id ) ) 
    390                 $id = get_current_blog_id(); 
    391  
    392         if ( get_current_blog_id() == $id ) 
    393                 return delete_option( $option ); 
    394  
    395         switch_to_blog( $id ); 
    396         $return = delete_option( $option ); 
    397         restore_current_blog(); 
    398  
    399         return $return; 
    400 } 
    401  
    402 /** 
    403  * Update an option for a particular blog. 
    404  * 
    405  * @since MU 
    406  * 
    407  * @param int $id The blog id 
    408  * @param string $option The option key 
    409  * @param mixed $value The option value 
    410  * @return bool True on success, false on failrue. 
    411  */ 
    412 function update_blog_option( $id, $option, $value, $deprecated = null ) { 
    413         $id = (int) $id; 
    414  
    415         if ( null !== $deprecated  ) 
    416                 _deprecated_argument( __FUNCTION__, '3.1' ); 
    417  
    418         if ( get_current_blog_id() == $id ) 
    419                 return update_option( $option, $value ); 
    420  
    421         switch_to_blog( $id ); 
    422         $return = update_option( $option, $value ); 
    423         restore_current_blog(); 
    424  
    425         refresh_blog_details( $id ); 
    426  
    427         return $return; 
    428 } 
    429  
    430 /** 
    431315 * Switch the current blog. 
    432316 * 
    433317 * This function is useful if you need to pull posts, or other information, 
  • wp-includes/class-wp-xmlrpc-server.php

     
    475475                        $blog_id = $blog->userblog_id; 
    476476                        $is_admin = current_user_can_for_blog( $blog_id, 'manage_options' ); 
    477477 
     478                        switch_to_blog( $blog_id ); 
    478479                        $struct[] = array( 
    479480                                'isAdmin'               => $is_admin, 
    480                                 'url'                   => get_home_url( $blog_id, '/' ), 
     481                                'url'                   => home_url( '/' ), 
    481482                                'blogid'                => (string) $blog_id, 
    482                                 'blogName'              => get_blog_option( $blog_id, 'blogname' ), 
    483                                 'xmlrpc'                => get_site_url( $blog_id, 'xmlrpc.php' ) 
     483                                'blogName'              => get_option( 'blogname' ), 
     484                                'xmlrpc'                => site_url( 'xmlrpc.php' ) 
    484485                        ); 
     486                        restore_current_blog(); 
    485487                } 
    486488 
    487489                return $struct; 
  • wp-includes/link-template.php

     
    18961896        if ( !in_array( $scheme, array( 'http', 'https', 'relative' ) ) ) 
    18971897                $scheme = is_ssl() && !is_admin() ? 'https' : 'http'; 
    18981898 
    1899         if ( empty( $blog_id ) || !is_multisite() ) 
     1899        if ( empty( $blog_id ) || !is_multisite() ) { 
    19001900                $url = get_option( 'home' ); 
    1901         else 
    1902                 $url = get_blog_option( $blog_id, 'home' ); 
     1901        } else { 
     1902                switch_to_blog( $blog_id ); 
     1903                $url = get_option( 'home' ); 
     1904                restore_current_blog(); 
     1905        } 
    19031906 
    19041907        if ( 'relative' == $scheme ) 
    19051908                $url = preg_replace( '#^.+://[^/]*#', '', $url ); 
     
    19611964                        $scheme = ( is_ssl() ? 'https' : 'http' ); 
    19621965        } 
    19631966 
    1964         if ( empty( $blog_id ) || !is_multisite() ) 
     1967        if ( empty( $blog_id ) || !is_multisite() ) { 
    19651968                $url = get_option( 'siteurl' ); 
    1966         else 
    1967                 $url = get_blog_option( $blog_id, 'siteurl' ); 
     1969        } else { 
     1970                switch_to_blog( $blog_id ); 
     1971                $url = get_option( 'siteurl' ); 
     1972                restore_current_blog(); 
     1973        } 
    19681974 
    19691975        if ( 'relative' == $scheme ) 
    19701976                $url = preg_replace( '#^.+://[^/]*#', '', $url ); 
  • wp-includes/ms-deprecated.php

     
    270270        } 
    271271        return $url; 
    272272} 
     273 
     274/** 
     275 * Retrieve option value for a given blog id based on name of option. 
     276 * 
     277 * If the option does not exist or does not have a value, then the return value 
     278 * will be false. This is useful to check whether you need to install an option 
     279 * and is commonly used during installation of plugin options and to test 
     280 * whether upgrading is required. 
     281 * 
     282 * If the option was serialized then it will be unserialized when it is returned. 
     283 * 
     284 * @since MU 
     285 * @deprecated 3.5.0 
     286 * 
     287 * @param int $id A blog ID. Can be null to refer to the current blog. 
     288 * @param string $option Name of option to retrieve. Expected to not be SQL-escaped. 
     289 * @param mixed $default Optional. Default value to return if the option does not exist. 
     290 * @return mixed Value set for the option. 
     291 */ 
     292function get_blog_option( $id, $option, $default = false ) { 
     293        _deprecated_function( __FUNCTION__, '3.5' ); 
     294 
     295        $id = (int) $id; 
     296 
     297        if ( empty( $id ) ) 
     298                $id = get_current_blog_id(); 
     299 
     300        if ( get_current_blog_id() == $id ) 
     301                return get_option( $option, $default ); 
     302 
     303        switch_to_blog( $id ); 
     304        $option = get_option( $option, $default ); 
     305        restore_current_blog(); 
     306 
     307        return $option; 
     308} 
     309 
     310/** 
     311 * Add a new option for a given blog id. 
     312 * 
     313 * You do not need to serialize values. If the value needs to be serialized, then 
     314 * it will be serialized before it is inserted into the database. Remember, 
     315 * resources can not be serialized or added as an option. 
     316 * 
     317 * You can create options without values and then update the values later. 
     318 * Existing options will not be updated and checks are performed to ensure that you 
     319 * aren't adding a protected WordPress option. Care should be taken to not name 
     320 * options the same as the ones which are protected. 
     321 * 
     322 * @since MU 
     323 * @deprecated 3.5.0 
     324 * 
     325 * @param int $id A blog ID. Can be null to refer to the current blog. 
     326 * @param string $option Name of option to add. Expected to not be SQL-escaped. 
     327 * @param mixed $value Optional. Option value, can be anything. Expected to not be SQL-escaped. 
     328 * @return bool False if option was not added and true if option was added. 
     329 */ 
     330function add_blog_option( $id, $option, $value ) { 
     331        _deprecated_function( __FUNCTION__, '3.5' ); 
     332 
     333        $id = (int) $id; 
     334 
     335        if ( empty( $id ) ) 
     336                $id = get_current_blog_id(); 
     337 
     338        if ( get_current_blog_id() == $id ) 
     339                return add_option( $option, $value ); 
     340 
     341        switch_to_blog( $id ); 
     342        $return = add_option( $option, $value ); 
     343        restore_current_blog(); 
     344 
     345        return $return; 
     346} 
     347 
     348/** 
     349 * Removes option by name for a given blog id. Prevents removal of protected WordPress options. 
     350 * 
     351 * @since MU 
     352 * @deprecated 3.5.0 
     353 * 
     354 * @param int $id A blog ID. Can be null to refer to the current blog. 
     355 * @param string $option Name of option to remove. Expected to not be SQL-escaped. 
     356 * @return bool True, if option is successfully deleted. False on failure. 
     357 */ 
     358function delete_blog_option( $id, $option ) { 
     359        _deprecated_function( __FUNCTION__, '3.5' ); 
     360 
     361        $id = (int) $id; 
     362 
     363        if ( empty( $id ) ) 
     364                $id = get_current_blog_id(); 
     365 
     366        if ( get_current_blog_id() == $id ) 
     367                return delete_option( $option ); 
     368 
     369        switch_to_blog( $id ); 
     370        $return = delete_option( $option ); 
     371        restore_current_blog(); 
     372 
     373        return $return; 
     374} 
     375 
     376/** 
     377 * Update an option for a particular blog. 
     378 * 
     379 * @since MU 
     380 * @deprecated 3.5.0 
     381 * 
     382 * @param int $id The blog id 
     383 * @param string $option The option key 
     384 * @param mixed $value The option value 
     385 * @return bool True on success, false on failrue. 
     386 */ 
     387function update_blog_option( $id, $option, $value, $deprecated = null ) { 
     388        _deprecated_function( __FUNCTION__, '3.5' ); 
     389 
     390        $id = (int) $id; 
     391 
     392        if ( null !== $deprecated  ) 
     393                _deprecated_argument( __FUNCTION__, '3.1' ); 
     394 
     395        if ( get_current_blog_id() == $id ) 
     396                return update_option( $option, $value ); 
     397 
     398        switch_to_blog( $id ); 
     399        $return = update_option( $option, $value ); 
     400        restore_current_blog(); 
     401 
     402        refresh_blog_details( $id ); 
     403 
     404        return $return; 
     405} 
  • wp-admin/includes/class-wp-ms-sites-list-table.php

     
    230230                                                echo "<td class='column-$column_name $column_name'$style>"; ?> 
    231231                                                        <a href="<?php echo esc_url( network_admin_url( 'site-info.php?id=' . $blog['blog_id'] ) ); ?>" class="edit"><?php echo $blogname . $blog_state; ?></a> 
    232232                                                        <?php 
    233                                                         if ( 'list' != $mode ) 
    234                                                                 echo '<p>' . sprintf( _x( '%1$s &#8211; <em>%2$s</em>', '%1$s: site name. %2$s: site tagline.' ), get_blog_option( $blog['blog_id'], 'blogname' ), get_blog_option( $blog['blog_id'], 'blogdescription ' ) ) . '</p>'; 
     233                                                        if ( 'list' != $mode ) { 
     234                                                                switch_to_blog( $blog['blog_id'] ); 
     235                                                                echo '<p>' . sprintf( _x( '%1$s &#8211; <em>%2$s</em>', '%1$s: site name. %2$s: site tagline.' ), get_option( 'blogname' ), get_option( 'blogdescription ' ) ) . '</p>'; 
     236                                                                restore_current_blog(); 
     237                                                        } 
    235238 
    236239                                                        // Preordered. 
    237240                                                        $actions = array( 
  • wp-admin/includes/ms.php

     
    411411 
    412412// Edit blog upload space setting on Edit Blog page 
    413413function upload_space_setting( $id ) { 
    414         $quota = get_blog_option( $id, 'blog_upload_space' ); 
     414        switch_to_blog( $id ); 
     415        $quota = get_option( 'blog_upload_space' ); 
     416        restore_current_blog(); 
     417 
    415418        if ( !$quota ) 
    416419                $quota = ''; 
    417420 
  • wp-admin/network/site-info.php

     
    135135                        <th scope="row"><?php _e( 'Path' ) ?></th> 
    136136                        <?php if ( $is_main_site ) { ?> 
    137137                        <td><code><?php echo esc_attr( $details->path ) ?></code></td> 
    138                         <?php } else { ?> 
     138                        <?php 
     139                        } else { 
     140                                switch_to_blog( $id ); 
     141                        ?> 
    139142                        <td><input name="blog[path]" type="text" id="path" value="<?php echo esc_attr( $details->path ) ?>" size="40" style='margin-bottom:5px;' /> 
    140                         <br /><input type="checkbox" style="width:20px;" name="update_home_url" value="update" <?php if ( get_blog_option( $id, 'siteurl' ) == untrailingslashit( get_blogaddress_by_id ($id ) ) || get_blog_option( $id, 'home' ) == untrailingslashit( get_blogaddress_by_id( $id ) ) ) echo 'checked="checked"'; ?> /> <?php _e( 'Update <code>siteurl</code> and <code>home</code> as well.' ); ?></td> 
    141                         <?php } ?> 
     143                        <br /><input type="checkbox" style="width:20px;" name="update_home_url" value="update" <?php if ( get_option( 'siteurl' ) == untrailingslashit( get_blogaddress_by_id ($id ) ) || get_option( 'home' ) == untrailingslashit( get_blogaddress_by_id( $id ) ) ) echo 'checked="checked"'; ?> /> <?php _e( 'Update <code>siteurl</code> and <code>home</code> as well.' ); ?></td> 
     144                        <?php 
     145                                restore_current_blog(); 
     146                        } ?> 
    142147                </tr> 
    143148                <tr class="form-field"> 
    144149                        <th scope="row"><?php _ex( 'Registered', 'site' ) ?></th> 
  • wp-admin/network/site-users.php

     
    5454$blog_prefix = $wpdb->get_blog_prefix( $id ); 
    5555 
    5656// @todo This is a hack. Eventually, add API to WP_Roles allowing retrieval of roles for a particular blog. 
    57 if ( ! empty($wp_roles->use_db) ) { 
    58         $editblog_roles = get_blog_option( $id, "{$blog_prefix}user_roles" ); 
     57if ( ! empty( $wp_roles->use_db ) ) { 
     58        switch_to_blog( $id ); 
     59        $editblog_roles = get_option( "{$blog_prefix}user_roles" ); 
     60        restore_current_blog(); 
    5961} else { 
    6062        // Roles are stored in memory, not the DB. 
    6163        $editblog_roles = $wp_roles->roles; 
    6264} 
    63 $default_role = get_blog_option( $id, 'default_role' ); 
    6465 
     66switch_to_blog( $id ); 
     67$default_role = get_option( 'default_role' ); 
     68restore_current_blog(); 
     69 
    6570$action = $wp_list_table->current_action(); 
    6671 
    6772if ( $action ) { 
  • wp-admin/network/upgrade.php

     
    6060                } 
    6161                echo "<ul>"; 
    6262                foreach ( (array) $blogs as $details ) { 
    63                         $siteurl = get_blog_option( $details['blog_id'], 'siteurl' ); 
     63                        switch_to_blog( $details['blog_id'] ); 
     64                        $siteurl = site_url(); 
     65                        $upgrade_url = admin_url( 'upgrade.php?step=upgrade_db' ); 
     66                        restore_current_blog(); 
    6467                        echo "<li>$siteurl</li>"; 
    65                         $response = wp_remote_get( trailingslashit( $siteurl ) . "wp-admin/upgrade.php?step=upgrade_db", array( 'timeout' => 120, 'httpversion' => '1.1' ) ); 
     68                        $response = wp_remote_get( $upgrade_url, array( 'timeout' => 120, 'httpversion' => '1.1' ) ); 
    6669                        if ( is_wp_error( $response ) ) 
    6770                                wp_die( sprintf( __( 'Warning! Problem updating %1$s. Your server may not be able to connect to sites running on it. Error message: <em>%2$s</em>' ), $siteurl, $response->get_error_message() ) ); 
    6871                        do_action( 'after_mu_upgrade', $response );