WordPress.org

Make WordPress Core

Ticket #25545: 25545.3.diff

File 25545.3.diff, 1.4 KB (added by kovshenin, 5 years ago)
  • src/wp-includes/ms-functions.php

     
    275275
    276276        if ( $reassign != '' ) {
    277277                $reassign = (int) $reassign;
    278                 $wpdb->query( $wpdb->prepare("UPDATE $wpdb->posts SET post_author = %d WHERE post_author = %d", $reassign, $user_id) );
    279                 $wpdb->query( $wpdb->prepare("UPDATE $wpdb->links SET link_owner = %d WHERE link_owner = %d", $reassign, $user_id) );
     278                $post_ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_author = %d", $user_id ) );
     279                $link_ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->links WHERE link_owner = %d", $user_id ) );
    280280
    281                 $post_ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_author = %d", $reassign ) );
    282                 array_map( 'clean_post_cache', $post_ids );
     281                if ( ! empty( $post_ids ) ) {
     282                        $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_author = %d WHERE ID IN (" . implode( ',', $post_ids ) . ")", $reassign ) );
     283                        array_walk( $post_ids, 'clean_post_cache' );
     284                }
     285
     286                if ( ! empty( $link_ids ) ) {
     287                        $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->links SET link_owner = %d WHERE ID IN (" . implode( ',', $link_ids ) . ")", $reassign ) );
     288                        array_walk( $link_ids, 'clean_bookmark_cache' );
     289                }
    283290        }
    284291
    285292        restore_current_blog();