From eb130cc23ead20abc2a84331a56a03dd861f41e2 Mon Sep 17 00:00:00 2001 From: azaozz Date: Fri, 8 Jan 2010 05:23:22 +0000 Subject: [PATCH] Optimize scan for lost attachments, props johnjosephbachir, fixes #10911 git-svn-id: http://svn.automattic.com/wordpress/trunk@12655 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/upload.php | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/wp-admin/upload.php b/wp-admin/upload.php index 6c373134d0..c372c64450 100644 --- a/wp-admin/upload.php +++ b/wp-admin/upload.php @@ -20,14 +20,9 @@ if ( isset($_GET['find_detached']) ) { if ( !current_user_can('edit_posts') ) wp_die( __('You are not allowed to scan for lost attachments.') ); - $all_posts = $wpdb->get_col("SELECT ID FROM $wpdb->posts WHERE post_type = 'post' OR post_type = 'page'"); - $all_att = $wpdb->get_results("SELECT ID, post_parent FROM $wpdb->posts WHERE post_type = 'attachment'"); + $all_posts = implode(',', $wpdb->get_col("SELECT ID FROM $wpdb->posts WHERE post_type IN ('post', 'page')")); + $lost = $wpdb->get_col("SELECT ID FROM $wpdb->posts WHERE post_type = 'attachment' AND post_parent > '0' and post_parent NOT IN ($all_posts)"); - $lost = array(); - foreach ( (array) $all_att as $att ) { - if ( $att->post_parent > 0 && ! in_array($att->post_parent, $all_posts) ) - $lost[] = $att->ID; - } $_GET['detached'] = 1; } elseif ( isset($_GET['found_post_id']) && isset($_GET['media']) ) {