Commit 9d507173 authored by Scott Taylor's avatar Scott Taylor
Browse files

In `remove_user_from_blog()`, avoid a potentially expensive `IN` query before...

In `remove_user_from_blog()`, avoid a potentially expensive `IN` query before invalidating the reassigned post and link caches.

Props kovshenin.
Fixes #25545. (Again.)


Built from https://develop.svn.wordpress.org/trunk@27161


git-svn-id: https://core.svn.wordpress.org/trunk@27027 1a063a9b-81f0-0310-95a4-ce76da25c4cd
parent f5ee6d3e
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -279,12 +279,12 @@ function remove_user_from_blog($user_id, $blog_id = '', $reassign = '') {
		$link_ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->links WHERE link_owner = %d", $user_id ) );

		if ( ! empty( $post_ids ) ) {
			$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_author = %d WHERE ID IN (" . implode( ',', $post_ids ) . ")", $reassign ) );
			$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_author = %d WHERE post_author = %d", $reassign, $user_id ) );
			array_walk( $post_ids, 'clean_post_cache' );
		}

		if ( ! empty( $link_ids ) ) {
			$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->links SET link_owner = %d WHERE ID IN (" . implode( ',', $link_ids ) . ")", $reassign ) );
			$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->links SET link_owner = %d WHERE link_owner = %d", $reassign, $user_id ) );
			array_walk( $link_ids, 'clean_bookmark_cache' );
		}
	}