WordPress.org

Make WordPress Core

Ticket #32503: 32503.1.diff

File 32503.1.diff, 2.7 KB (added by earnjam, 5 years ago)
  • src/wp-admin/network/site-info.php

     
    6565        }
    6666        update_blog_details( $id, $blog_data );
    6767
    68         if ( isset( $_POST['update_home_url'] ) && $_POST['update_home_url'] == 'update' ) {
    69                 $new_details = get_blog_details( $id, false );
    70                 $blog_address = esc_url_raw( $new_details->domain . $new_details->path );
    71                 if ( get_option( 'siteurl' ) != $blog_address ) {
    72                         update_option( 'siteurl', $blog_address );
    73                 }
    74                 if ( get_option( 'home' ) != $blog_address ) {
    75                         update_option( 'home', $blog_address );
    76                 }
     68        // Maybe update home and siteurl options
     69        $updated_details = get_blog_details( $id, false );
     70        $old_address = esc_url_raw( $existing_details->domain . $existing_details->path );
     71        $new_address = esc_url_raw( $updated_details->domain . $updated_details->path );
     72        if ( get_option( 'home' ) === untrailingslashit( $old_address ) ) {
     73                update_option( 'home', $new_address );
    7774        }
     75        if ( get_option( 'siteurl' ) === untrailingslashit( $old_address ) ){
     76                update_option( 'siteurl', $new_address );
     77        }
    7878
    7979        restore_current_blog();
    8080        wp_redirect( add_query_arg( array( 'update' => 'updated', 'id' => $id ), 'site-info.php') );
     
    134134                </tr>
    135135                <tr class="form-field form-required">
    136136                        <?php if ( $is_main_site ) { ?>
    137                         <th scope="row"><?php _e( 'Path' ) ?></th>
    138                         <td><code><?php echo esc_attr( $details->path ) ?></code></td>
    139                         <?php
    140                         } else {
    141                                 switch_to_blog( $id );
    142                         ?>
    143                         <th scope="row"><label for="path"><?php _e( 'Path' ) ?></label></th>
    144                         <td>
    145                                 <input name="blog[path]" type="text" id="path" value="<?php echo esc_attr( $details->path ) ?>" /><br />
    146                                 <input type="checkbox" name="update_home_url" id="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"'; ?> /> <label for="update_home_url"><?php _e( 'Update <code>siteurl</code> and <code>home</code> as well.' ); ?></label>
    147                         </td>
    148                         <?php
    149                                 restore_current_blog();
    150                         } ?>
     137                                <th scope="row"><?php _e( 'Path' ) ?></th>
     138                                <td><code><?php echo esc_attr( $details->path ) ?></code></td>
     139                        <?php } else { ?>
     140                                <th scope="row"><label for="path"><?php _e( 'Path' ) ?></label></th>
     141                                <td><input name="blog[path]" type="text" id="path" value="<?php echo esc_attr( $details->path ) ?>" /></td>
     142                        <?php } ?>
    151143                </tr>
    152144                <tr class="form-field">
    153145                        <th scope="row"><label for="blog_registered"><?php _ex( 'Registered', 'site' ) ?></label></th>