- foreach( (array) $_GET['delete'] 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...') );
- } else {
- if ( !wp_delete_post($post_id_del) )
- wp_die( __('Error in deleting...') );
- }
+ $sendback = remove_query_arg( array('trashed', 'untrashed', 'deleted', 'ids'), wp_get_referer() );
+
+ if ( strpos($sendback, 'post.php') !== false )
+ $sendback = admin_url($post_new_file);
+
+ if ( isset($_GET['delete_all']) || isset($_GET['delete_all2']) ) {
+ $post_status = preg_replace('/[^a-z0-9_-]+/i', '', $_GET['post_status']);
+ $post_ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type=%s AND post_status = %s", $post_type, $post_status ) );
+ $doaction = 'delete';
+ } elseif ( ( $_GET['action'] != -1 || $_GET['action2'] != -1 ) && ( isset($_GET['post']) || isset($_GET['ids']) ) ) {
+ $post_ids = isset($_GET['post']) ? array_map( 'intval', (array) $_GET['post'] ) : explode(',', $_GET['ids']);
+ $doaction = ($_GET['action'] != -1) ? $_GET['action'] : $_GET['action2'];
+ } else {
+ wp_redirect( admin_url("edit.php?post_type=$post_type") );
+ }
+
+ switch ( $doaction ) {
+ case 'trash':
+ $trashed = 0;
+ foreach( (array) $post_ids as $post_id ) {
+ if ( !current_user_can($post_type_object->cap->delete_post, $post_id) )
+ wp_die( __('You are not allowed to move this item to the Trash.') );
+
+ if ( !wp_trash_post($post_id) )
+ wp_die( __('Error in moving to Trash.') );
+
+ $trashed++;
+ }
+ $sendback = add_query_arg( array('trashed' => $trashed, 'ids' => join(',', $post_ids)), $sendback );
+ break;
+ case 'untrash':
+ $untrashed = 0;
+ foreach( (array) $post_ids as $post_id ) {
+ if ( !current_user_can($post_type_object->cap->delete_post, $post_id) )
+ wp_die( __('You are not allowed to restore this item from the Trash.') );
+
+ if ( !wp_untrash_post($post_id) )
+ wp_die( __('Error in restoring from Trash.') );
+
+ $untrashed++;
+ }
+ $sendback = add_query_arg('untrashed', $untrashed, $sendback);
+ break;
+ case 'delete':
+ $deleted = 0;
+ foreach( (array) $post_ids as $post_id ) {
+ $post_del = & get_post($post_id);
+
+ if ( !current_user_can($post_type_object->cap->delete_post, $post_id) )
+ wp_die( __('You are not allowed to delete this item.') );
+
+ if ( $post_del->post_type == 'attachment' ) {
+ if ( ! wp_delete_attachment($post_id) )
+ wp_die( __('Error in deleting...') );
+ } else {
+ if ( !wp_delete_post($post_id) )
+ wp_die( __('Error in deleting...') );
+ }
+ $deleted++;
+ }
+ $sendback = add_query_arg('deleted', $deleted, $sendback);
+ break;
+ case 'edit':
+ $done = bulk_edit_posts($_GET);
+
+ if ( is_array($done) ) {
+ $done['updated'] = count( $done['updated'] );
+ $done['skipped'] = count( $done['skipped'] );
+ $done['locked'] = count( $done['locked'] );
+ $sendback = add_query_arg( $done, $sendback );
+ }
+ break;