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'"); $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']) ) { check_admin_referer('bulk-media'); if ( ! ( $parent_id = (int) $_GET['found_post_id'] ) ) return; $parent = &get_post($parent_id); if ( !current_user_can('edit_post', $parent_id) ) wp_die( __('You are not allowed to edit this post.') ); $attach = array(); foreach( (array) $_GET['media'] as $att_id ) { $att_id = (int) $att_id; if ( !current_user_can('edit_post', $att_id) ) continue; $attach[] = $att_id; } if ( ! empty($attach) ) { $attach = implode(',', $attach); $attached = $wpdb->query( $wpdb->prepare("UPDATE $wpdb->posts SET post_parent = %d WHERE post_type = 'attachment' AND ID IN ($attach)", $parent_id) ); } if ( isset($attached) ) { $location = 'upload.php'; if ( $referer = wp_get_referer() ) { if ( false !== strpos($referer, 'upload.php') ) $location = $referer; } $location = add_query_arg( array( 'detached' => 1, 'attached' => $attached ) , $location ); wp_redirect($location); exit; } } elseif ( isset($_GET['action']) && isset($_GET['media']) && ( -1 != $_GET['action'] || -1 != $_GET['action2'] ) ) { check_admin_referer('bulk-media'); $doaction = ( -1 != $_GET['action'] ) ? $_GET['action'] : $_GET['action2']; if ( 'delete' == $doaction ) { foreach( (array) $_GET['media'] as $post_id_del ) { $post_del = & get_post($post_id_del); if ( !current_user_can('delete_post', $post_id_del) ) wp_die( __('You are not allowed to delete this post.') ); if ( $post_del->post_type == 'attachment' ) if ( ! wp_delete_attachment($post_id_del) ) wp_die( __('Error in deleting...') ); } $location = 'upload.php'; if ( $referer = wp_get_referer() ) { if ( false !== strpos($referer, 'upload.php') ) $location = $referer; } $location = add_query_arg('message', 2, $location); $location = remove_query_arg('posted', $location); wp_redirect($location); exit; } } elseif ( isset($_GET['_wp_http_referer']) && ! empty($_GET['_wp_http_referer']) ) { wp_redirect( remove_query_arg( array('_wp_http_referer', '_wpnonce'), stripslashes($_SERVER['REQUEST_URI']) ) ); exit; } $title = __('Media Library'); $parent_file = 'upload.php'; if ( ! isset( $_GET['paged'] ) || $_GET['paged'] < 1 ) $_GET['paged'] = 1; if ( isset($_GET['detached']) ) { if ( !empty($lost) ) { $start = ( $_GET['paged'] - 1 ) * 50; $page_links_total = ceil(count($lost) / 50); $lost = implode(',', $lost); $orphans = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE post_type = 'attachment' AND ID IN ($lost) LIMIT $start, 50" ); } else { $start = ( $_GET['paged'] - 1 ) * 25; $orphans = $wpdb->get_results( "SELECT SQL_CALC_FOUND_ROWS * FROM $wpdb->posts WHERE post_type = 'attachment' AND post_parent < 1 LIMIT $start, 25" ); $page_links_total = ceil($wpdb->get_var( "SELECT FOUND_ROWS()" ) / 25); } $post_mime_types = array( 'image' => array(__('Images'), __('Manage Images'), __ngettext_noop('Image (%s)', 'Images (%s)')), 'audio' => array(__('Audio'), __('Manage Audio'), __ngettext_noop('Audio (%s)', 'Audio (%s)')), 'video' => array(__('Video'), __('Manage Video'), __ngettext_noop('Video (%s)', 'Video (%s)')), ); $post_mime_types = apply_filters('post_mime_types', $post_mime_types); $avail_post_mime_types = get_available_post_mime_types('attachment'); if ( isset($_GET['post_mime_type']) && !array_intersect( (array) $_GET['post_mime_type'], array_keys($post_mime_types) ) ) unset($_GET['post_mime_type']); } else { list($post_mime_types, $avail_post_mime_types) = wp_edit_attachments_query(); } wp_enqueue_script('media'); require_once('admin-header.php'); ?>